Android ViewPager加TabLayout

Android ViewPager加TabLayout

布局
使用TabLayout需要添加依赖

implementation 'com.android.support:design:26.1.0'
<android.support.v4.view.ViewPager android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_weight="10"
        android:layout_height="0dp"></android.support.v4.view.ViewPager>
    <android.support.design.widget.TabLayout android:id="@+id/tab"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="0dp"></android.support.design.widget.TabLayout>

让他有三个滑动页面,需要创建三个Fragment。
当然,当Fragment多时创建那那么多Fragment有点麻烦,这时也可以采用Fragment复用,我就直接创建三个Fragment了。

Activity主代码
TabLayout下标题需要泛型为String的集合

	TabLayout tabLayout=findViewById(R.id.tab);
        ViewPager viewPager=findViewById(R.id.vp);
	ArrayList<String> title=new ArrayList<>();
        title.add("a");
        title.add("b");
        title.add("c");
        ArrayList<Fragment> list=new ArrayList<>();
        BlankFragment1 blankFragment1=new BlankFragment1();
        BlankFragment2 blankFragment2=new BlankFragment2();
        BlankFragment3 blankFragment3=new BlankFragment3();
        list.add(blankFragment1);
        list.add(blankFragment2);
        list.add(blankFragment3);
        MyAdapter_vp myAdapter_vp=new MyAdapter_vp(getSupportFragmentManager(),title,list);
        viewPager.setAdapter(myAdapter_vp);
        tabLayout.setupWithViewPager(viewPager);

MyAdapter_vp 为ViewPager加TabLayout的适配器

	private ArrayList<String> title;
    private ArrayList<Fragment> list;

    public MyAdapter_vp(FragmentManager fm, ArrayList<String> title, ArrayList<Fragment> list) {
        super(fm);
        this.title = title;
        this.list = list;
    }

    @Override
    public Fragment getItem(int position) {
        return list.get(position);
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return title.get(position);
    }

OK了,如果有什么问题可以评论给我!

猜你喜欢

转载自blog.csdn.net/Null_CSDN/article/details/83858914