微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么仅在我向其添加另一个虚拟Tab的情况下才显示TabLayout中的指示器?

如何解决为什么仅在我向其添加另一个虚拟Tab的情况下才显示TabLayout中的指示器?

所以,我有一个TabLayout一个ViewPager

<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 举报,一经查实,本站将立刻删除。