美文网首页
TabLayout+ViewPager+Fragment联动切换

TabLayout+ViewPager+Fragment联动切换

作者: A然后呢 | 来源:发表于2020-06-24 22:40 被阅读0次

tablayout动态添加数据

ArrayList<String> strings = new ArrayList<>(Arrays.asList("标题1","标题2","标题3","标题4"));
        for (String str:strings
             ) {
            mMyTablayou.addTab(mMyTablayou.newTab().setText(str));

        }

tablayout监听切换

mMyTablayou.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                mViewPager.setCurrentItem(tab.getPosition());    //设置ViewPager显示相应的页面
               // 新点击
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
              // 上一个点击的
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });

ViewPager适配器

public class ViewPageAdapter extends FragmentPagerAdapter {
    ArrayList<Fragment> fragments;

    public ViewPageAdapter(@NonNull FragmentManager fm,ArrayList<Fragment> arrayList) {
        super(fm);
        fragments=arrayList;
    }

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

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

ViewPager绑定适配器

viewPageAdapter = new ViewPageAdapter(getSupportFragmentManager(), fragments);
        mviewPage.setAdapter(viewPageAdapter);

ViewPager监听

 mViewPage.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                mMyTablayou.getTabAt(position).select();   //设置Tablayou选中的选项
               // 滑动到的新页面

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

相关文章

网友评论

      本文标题:TabLayout+ViewPager+Fragment联动切换

      本文链接:https://www.haomeiwen.com/subject/emodfktx.html