如何解决为什么仅在我向其添加另一个虚拟Tab的情况下才显示TabLayout中的指示器?
<android.support.design.widget.TabLayout
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="4dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
app:tabBackground="@drawable/tab_selector"
app:tabIndicatorColor="@color/white"
app:tabIndicatorHeight="0dp" />
<android.support.v4.view.ViewPager
android:id="@+id/viewPage"
android:layout_width="0dp"
android:layout_height="0dp" />
代码:
ViewPager viewPage = view.findViewById(R.id.viewPage);
ViewPagerAdapter adapter = new ViewPagerAdapter(fragmentManager,images.size());
viewPage.setAdapter(adapter);
TabLayout titleIndicator = view.findViewById(R.id.indicator);
titleIndicator.setupWithViewPager(viewPage);
wrapTabIndicatorToTitle(titleIndicator,4,4);
其中wrapTabIndicatorToTitle()
是从Stackoverflow的answer中提取的(由于它是一个大方法而被省略)
现在,该可以在大多数设备上使用,但是在我的Samsung galaxy Tab A T280上,该指示器完全没有显示。我仍然可以在选项卡之间导航,但是指示器根本不出现。 但是,如果我以编程方式像这样添加新的虚拟Tab:
TabLayout.Tab sport = titleIndicator.newTab().setText("Sport");
titleIndicator.addTab(sport);
一切正常,并且显示了我所有选项卡和虚拟选项卡的指示符。这是一种非常奇怪的行为,我不知道是什么原因造成的。
更新:如果我更改了
的顺序titleIndicator.setupWithViewPager(viewPage);
wrapTabIndicatorToTitle(titleIndicator,4);
到
wrapTabIndicatorToTitle(titleIndicator,4);
titleIndicator.setupWithViewPager(viewPage);
它似乎可以在所有设备上运行(不添加虚拟选项卡),但是指示器变小了很多,这很奇怪。以前,指示符占据了屏幕的整个宽度,但现在只占据了屏幕的10%。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。