我想用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);
这是结果:
tabLayout.setupWithViewPager(pager)
要做的是在视图寻呼机的适配器上调用getPageTitle()
,并使用返回的字符串创建选项卡。我建议不要打电话给setupWithViewPager()
。然后你需要做两件事:
viewPager.addOnPageChangeListener
实现调用OnPageChangeListener
,该实现将根据所选页面选择选项卡。tabLayout.setOnTabSelectedListener
实现调用OnTabSelectedListener
,该实现将使用选定的选项卡号调用viewPager.setCurrentPage()
。只需确保您的PagerAdapter
计数与TabLayout
中的标签数量相匹配。
这很有帮助:
///////同步!!!
更换
setupWithViewPager();
同
tablayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tablayout));