整个空间依赖
maven {url "https://jitpack.io"}
项目的依赖
implementation 'com.github.andyoom:draggrid:v1.0.1'
Xml_Main
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
></android.support.design.widget.TabLayout>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="+"
android:textSize="40sp"
/>
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"></android.support.v4.view.ViewPager>
MainActivity
private TabLayout tabLayout;
private ViewPager viewPager;
private TextView textView;
private ArrayList<ChannelBean> channelBeans=new ArrayList<>();
private ArrayList<Fragment> fragments=new ArrayList<>();
private MyBase myBase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init(savedInstanceState);
initData();
}
private void initData() {
channelBeans.add(new ChannelBean("热点",true));
channelBeans.add(new ChannelBean("关注",true));
channelBeans.add(new ChannelBean("北京",true));
channelBeans.add(new ChannelBean("房价",true));
channelBeans.add(new ChannelBean("旅游",false));
channelBeans.add(new ChannelBean("条目一",false));
channelBeans.add(new ChannelBean("条目二",false));
fragments.add(new FragmentOne());
fragments.add(new FragmentTwo());
fragments.add(new FragmentThree());
fragments.add(new FragmentOne());
fragments.add(new FragmentTwo());
fragments.add(new FragmentThree());
fragments.add(new FragmentOne());
for (int i=0;i<channelBeans.size();i++){
if(channelBeans.get(i).isSelect()){
tabLayout.addTab(tabLayout.newTab().setText(channelBeans.get(i).getName()));
}
}
myBase=new MyBase(getSupportFragmentManager());
viewPager.setAdapter(myBase);
tabLayout.setupWithViewPager(viewPager);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==ChannelActivity.REQUEST_CODE&&resultCode==ChannelActivity.RESULT_CODE){
String stringExtra = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
Gson gson=new Gson();
Type type = new TypeToken<ArrayList<ChannelBean>>() {
}.getType();
channelBeans=gson.fromJson(stringExtra,type);
for (int i=0;i<channelBeans.size();i++){
if(channelBeans.get(i).isSelect()){
tabLayout.addTab(tabLayout.newTab().setText(channelBeans.get(i).getName()));
}
}
myBase.notifyDataSetChanged();
}
}
private void init(Bundle savedInstanceState) {
tabLayout = findViewById(R.id.tab);
viewPager = findViewById(R.id.viewpager);
textView = findViewById(R.id.text);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ChannelActivity.startChannelActivity(MainActivity.this,channelBeans);
}
});
}
class MyBase extends FragmentPagerAdapter {
public MyBase(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return fragments.get(i);
}
@Override
public int getCount() {
int count=0;
for (int i=0;i<channelBeans.size();i++){
if(channelBeans.get(i).isSelect()){
count++;
}
}
return count;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return channelBeans.get(position).getName();
}
}