使用TabItem时如何将TabLayout与ViewPager同步

Ami*_*mir 6 android material-design android-support-design android-tablayout

我想用TabLayoutTabItem用下面的代码:

  <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/color_primary"
        app:tabGravity="fill"
        app:tabIndicatorColor="@color/white"
        app:tabMode="fixed"
        app:tabSelectedTextColor="@color/white"
        app:tabTextColor="@color/gray_light">

        <android.support.design.widget.TabItem
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:icon="@drawable/ic_language" />


        <!-- other tabs ... -->


    </android.support.design.widget.TabLayout>
Run Code Online (Sandbox Code Playgroud)

这是正确的向我展示图标:

在此输入图像描述

但问题是当我想添加我TabLayout的时候ViewPager,使用以下代码,所有这些代码都存在且可点击但却消失了.我错过了什么?

 MyPagerAdapter adapter = new MyPagerAdapter(getFragmentManager());
 pager.setAdapter(adapter);

 tabLayout.setupWithViewPager(pager);
Run Code Online (Sandbox Code Playgroud)

这是结果:

在此输入图像描述

Had*_*ote 21

这很有帮助:

///////同步!!!

更换

setupWithViewPager();
Run Code Online (Sandbox Code Playgroud)

tablayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tablayout));
Run Code Online (Sandbox Code Playgroud)

  • 谢谢兄弟,您保存我的一天,工作完美。 (2认同)
  • 哎呀...谢谢兄弟...我花了好几个小时来敲这个头。互联网上实际上没有样本。 (2认同)

kri*_*son 8

什么tabLayout.setupWithViewPager(pager)是要做的是调用getPageTitle()视图寻呼机的适配器上,并用返回的字符串创建标签.我建议不要打电话setupWithViewPager().然后你需要做两件事:

  • viewPager.addOnPageChangeListener使用OnPageChangeListener将根据所选页面选择选项卡的实现进行调用.

  • 调用tabLayout.setOnTabSelectedListenerOnTabSelectedListener将调用执行viewPager.setCurrentPage()与所选择的选项卡数.

只需确保您的PagerAdapter计数符合您的标签数量即可TabLayout.