1、首先在项目的build下注册
allprojects {
repositories {
jcenter()
//下面这句maver才是加上的,上面的自带 的
maven {url “https://jitpack.io”}
}
}
2、然后在app下的build中导入依赖
compile ‘com.github.andyoom:draggrid:v1.0.1’
3.MainActivity
public class MainActivity extends AppCompatActivity {
private ViewPager vp;
private Button btn;
ArrayList<Fragment> flist=new ArrayList<>();
ArrayList<ChannelBean> channelBeanslist=new ArrayList<>();
private MPagerAdapter padapter;
private TabLayout tb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
/*
初始化
*/
private void initView() {
tb = findViewById(R.id.tb);
vp = findViewById(R.id.vp);
btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ChannelActivity 跳转 ChannelActivity提供的打卡自己的方法;
ChannelActivity.startChannelActivity(MainActivity.this,channelBeanslist);
}
});
}
private void initData() {
channelBeanslist.add(new ChannelBean("热点",true));
channelBeanslist.add(new ChannelBean("北京",true));
channelBeanslist.add(new ChannelBean("房价",true));
channelBeanslist.add(new ChannelBean("旅游",false));
channelBeanslist.add(new ChannelBean("条目1",false));
channelBeanslist.add(new ChannelBean("条目2",false));
for (int i = 0; i < channelBeanslist.size(); i++) {
if(channelBeanslist.get(i).isSelect()){//为true添加进去
String tabname = channelBeanslist.get(i).getName();
tb.addTab(tb.newTab().setText(tabname));
flist.add(new MFragment());
}
}
padapter = new MPagerAdapter(getSupportFragmentManager());
vp.setAdapter(padapter);
tb.setupWithViewPager(vp);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//ChannelActivity回调 钥匙 key
String json = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
Type type = new TypeToken<ArrayList<ChannelBean>>(){}.getType();
Gson gson = new Gson();
channelBeanslist= gson.fromJson(json, type);
//删除之前的tb
tb.removeAllTabs();
//删除之前的fragment
flist.clear();
//然后重新添加
for (int i = 0; i < channelBeanslist.size(); i++) {
if (channelBeanslist.get(i).isSelect()){
String tabname = channelBeanslist.get(i).getName();
tb.addTab(tb.newTab().setText(tabname));
flist.add(new MFragment());
}
}
//刷新 因为集合里的fragment数量改变了
padapter.notifyDataSetChanged();
}
class MPagerAdapter extends FragmentPagerAdapter {
public MPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return flist.get(i);
}
@Override
public int getCount() {
return flist.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
//todo viewpager返回的标题
return channelBeanslist.get(position).getName();
}
}
}
4.MFragment
public class MFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
TextView textView=new TextView(getActivity());
double random = Math.random();
textView.setText(“111111”+random);
return textView;
}
}
5.布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.design.widget.TabLayout
android:id="@+id/tb"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
</android.support.design.widget.TabLayout>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"/>
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"></android.support.v4.view.ViewPager>