频道管理:

权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.VIBRATE"/>

依赖

implementation 'com.github.andyoom:draggrid:v1.0.1'
allprojects {
    repositories {
        google()
        jcenter()
        maven {url "https://jitpack.io"}
    }
}

布局文件:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.design.widget.TabLayout
        android:id="@+id/Tab_Layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabMode="scrollable" />

    <TextView
        android:id="@+id/Add_Fragment"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerInParent="true"
        android:text="+"
        android:textSize="40sp" />
</RelativeLayout>

<android.support.v4.view.ViewPager
    android:id="@+id/View_Pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></android.support.v4.view.ViewPager>

activity:

public class MainActivity extends AppCompatActivity {

List<ChannelBean> channel;
private TabLayout Tab_Layout;
private TextView Add_Fragment;
private ViewPager View_Pager;
private List<Fragment> mList=new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
    initData();

    Add_Fragment.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ChannelActivity.startChannelActivity(MainActivity.this,channel);
        }
    });
}

@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 jsonstr = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);

        Tab_Layout.removeAllTabs();
        Gson gson=new Gson();
        Type type=new TypeToken<List<ChannelBean>>(){}.getType();
        channel = gson.fromJson(jsonstr, type);

        for(int i=0;i<channel.size();i++){
            if(channel.get(i).isSelect()){
               /* try{
                    Tab_Layout.addTab(Tab_Layout.newTab(channel.get(i).getName()));
                }catch (Exception e){

                }*/

                try{
                    Tab_Layout.addTab(Tab_Layout.newTab().setText(channel.get(i).getName()));
                }catch (Exception e){

                }
            }
        }
        View_Pager.getAdapter().notifyDataSetChanged();

    }
}

private void initData() {
    channel = new ArrayList<>();


    channel.add(new ChannelBean("今日头条", true));
    channel.add(new ChannelBean("新闻", true));
    channel.add(new ChannelBean("汽车", true));
    channel.add(new ChannelBean("军事", true));
    channel.add(new ChannelBean("科技", true));
    channel.add(new ChannelBean("生活", true));
    channel.add(new ChannelBean("服装", true));
    channel.add(new ChannelBean("劳斯莱斯", true));
    channel.add(new ChannelBean("美女", false));
    channel.add(new ChannelBean("香麻油", false));
    channel.add(new ChannelBean("高铁", false));
    channel.add(new ChannelBean("冠军", false));

    mList.add(new AFragment());
    mList.add(new BFragment());
    mList.add(new CFragment());
    mList.add(new AFragment());
    mList.add(new BFragment());
    mList.add(new CFragment());
    mList.add(new AFragment());
    mList.add(new BFragment());
    mList.add(new CFragment());
    mList.add(new AFragment());
    mList.add(new BFragment());
    mList.add(new CFragment());

   View_Pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
       @Override
       public Fragment getItem(int i) {
       if (channelBeans.get(i).getName().equals("条目一")) {
                return mList.get(2);
            } else if (channelBeans.get(i).getName().equals("条目二")) {
                return mList.get(1);
            } else if (channelBeans.get(i).getName().equals("轮播")) {
                return mList.get(0);
            } else if (channelBeans.get(i).getName().equals("数据库")) {
                return mList.get(3);
            } else if (channelBeans.get(i).getName().equals("圆点")) {
                return mList.get(4);
            } else {
                return mList.get(5);
            }
         //这是写匹配对应下标的,数据是随便写的
       }

       @Override
       public int getCount() {
           int count=0;
           for(int i=0;i<channel.size();i++){
               if(channel.get(i).isSelect()){
                   count++;
               }
           }
           return count;
       }

       @Nullable
       @Override
       public CharSequence getPageTitle(int position) {
           Log.e("zzz",channel.get(position).getName()+"*******************");
           return channel.get(position).getName();
       }
   });

   Tab_Layout.setupWithViewPager(View_Pager);
}

private void initView() {
    Tab_Layout =  findViewById(R.id.Tab_Layout);
    Add_Fragment =  findViewById(R.id.Add_Fragment);
    View_Pager =  findViewById(R.id.View_Pager);
}

}

发布了33 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Zhangyz_521/article/details/84315187