我想将TabLayout
与TabItem
一起使用以下代码:
<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>
这是正确的向我展示图标:
但问题是当我想将TabLayout
添加到ViewPager
时,使用以下代码,所有这些代码都存在且可点击但会消失。我错过了什么吗?
MyPagerAdapter adapter = new MyPagerAdapter(getFragmentManager());
pager.setAdapter(adapter);
tabLayout.setupWithViewPager(pager);
这就是结果:
答案 0 :(得分:12)
这很有帮助:
///////同步!!!
替换
setupWithViewPager();
使用
tablayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tablayout));
答案 1 :(得分:8)
tabLayout.setupWithViewPager(pager)
要做的是在视图寻呼机的适配器上调用getPageTitle()
,并使用返回的字符串创建选项卡。我建议不要拨打setupWithViewPager()
。然后你需要做两件事:
使用viewPager.addOnPageChangeListener
实施方式调用OnPageChangeListener
,该实施将根据所选页面选择标签。
使用tabLayout.setOnTabSelectedListener
实施方式致电OnTabSelectedListener
,该实施将使用所选标签号称viewPager.setCurrentPage()
。
只需确保您的PagerAdapter
计数与TabLayout
中的标签数相符。