Android初学者入门——------TabLayout介绍与ViewPager联动

首先需要导入数据库Design库,分析实现思路:需要两个集合,一个标题的集合,一个Fragment集合

一:布局:TabLayout注意包名

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabGravity="center"
        app:tabIndicatorColor="@color/colorAccent"
        app:tabMode="scrollable"
        app:tabSelectedTextColor="@color/colorPrimaryDark"
        app:tabTextColor="@color/colorPrimary"
        >

    </android.support.design.widget.TabLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_below="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </android.support.v4.view.ViewPager>


</RelativeLayout>
二:MainActivity代码
    1、初始化两个控件
    2、创建标题的集合,添加数据
        
       List<String> listStr = new ArrayList();
       listStr.add("美女");
       listStr.add("段子");
       listStr.add("社会");
       listStr.add("汽车");
       listStr.add("博客");
       listStr.add("前端");
       listStr.add("公司");
       listStr.add("资讯");
       listStr.add("视频");
       listStr.add("文学");
     3、创建Fragment集合,然后通过Fragment把标题加进集合
       List<Fragment> listTv = new Arrlist<>();
for (int i = 0; i < 10; i++) { //创建NewsFragment类继承Fragment
listTv.add(new NewsFragment(listStr.get(i))); }
4、设置适配器
       view_pager.setAdapter(new MyAdapter(getSupportFragmentManager()));
       //创建ViewPager的适配器(MyAdapter)
       
       class MyAdapter extends FragmentPagerAdapter {//继承FragmentPagerAdapter

           public MyAdapter(FragmentManager fm) {
               super(fm);
           }
           @Override
       public Fragment getItem(int position) {
            return listTv.get(position);
      }
          @Override
          public int getCount() {
               return listTv.size();
        }
       //此方法需要手动提示重写,设置当前标题
      @Override
         public CharSequence getPageTitle(int position) {
             return listStr.get(position);
        }
    }

5、联动
       tab_layout.setupWithViewPager(view_pager);






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值