2019-05-19

        接上文

ViewPager+Fragment+Tablayout的使用

1.xml设置TabLayout和Viewpager

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context="com.edu.cumulus.tablayoutdemo.TabViewPagerActivity">

<android.support.v4.view.ViewPager

android:id="@+id/vp"

android:layout_width="match_parent"

android:layout_weight="1"

android:layout_height="0dp">

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

<android.support.design.widget.TabLayout

android:id="@+id/tabLayout"

app:tabTextColor="#000000"

app:tabSelectedTextColor="#fa6a13"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

</LinearLayout>

2. 为Viewpager创建适配器

public class CityFMAdapte rextends FragmentPagerAdapter {

private ArrayList<Fragment> mListFM;

private String [] arr;

//

public CityFMAdapter(FragmentManager fm, ArrayList mListfm, String[] arr) {

   super(fm);

  this.mListfm = mListfm;

  this.arr = arr;

}

@Override

    public Fragment getItem(int position) {

      return mListfm.get(position);

  }

@Override

    public int getCount() {

return mListfm.size();

}

@Nullable

@Override

    public CharSequence getPageTitle(int position) {

return arr[position ];

}

}

主要是重写getPageTitle()方法

3. 代码设置 TabLayout和Viewpager绑定

tabLayout=(TabLayout)findViewById(R.id.tab_layout);

mViewPager=(ViewPager)findViewById(R.id.container);

mSectionsPagerAdapter=newSectionsPagerAdapter(getSupportFragmentManager());

mViewPager.setAdapter(mSectionsPagerAdapter);

// 绑定,要在viewpager设置完数据后,调用此方法,否则不显示 tabs文本

tabLayout.setupWithViewPager(mViewPager);

调用setupWithViewPager()方法,则使用TabLayout.addtab()方法无效,TabLayout会清除之前添加的所有tabs,并将根据Viewpager的页数添加Tab,Tab标题为对应页通过getPageTitle()返回的文本

使用Tab.setCustomView()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容