Material Design组件介绍

博客介绍了TabLayout与ViewPager配合实现多Fragment的使用方法。强调mtablayout.setupWithViewPager(mviewpager)要放最后,可使onTabSelected方法首次进入Activity不切换Tab也调用;mviewpager.setCurrentItem设置当前选中页时,要放监听方法后且position不为0,让onPageSelected方法同理调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入依赖库

   implementation 'com.android.support:design:28.0.0'

1.TabLayout

tablayout 我们通常配合ViewPager实现多Fragment

        mtablayout = findViewById(R.id.tab_tab);
        mviewpager = findViewById(R.id.tab_viewpager);
        mviewpager.setOffscreenPageLimit(mname.length);
        mviewpager.setAdapter(new PagerAdapter(getSupportFragmentManager()));
        mviewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }

            @Override
            public void onPageSelected(int i) {
                Log.v(TAG, "Page改变:" + i);
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });
        //要放到监听事件的后面&不能是0  才会走onPageSelected()方法
        mviewpager.setCurrentItem(0);
        mtablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                Log.v(TAG, "选择Tab:" + tab.getText());
            }

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

            }

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

            }
        });
        //放在最后面
        mtablayout.setupWithViewPager(mviewpager);

注意

  • mtablayout.setupWithViewPager(mviewpager);要放到最后这样,onTabSelected()方法就算是第一次进入Activity,不用切换Tab也会调用;
  • mviewpager.setCurrentItem(int position)设置设置当前选中页时,需要放在 viewpager.addOnPageChangeListener监听方法后面并且设置position不等于0,这样onPageSelected()方法就算是第一次进入Activity,不用切换Tab也会调用;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值