我在标签中添加了一个自定义视图,我可以像这样实现。我现在面临的问题是,当页面加载时,第一个选项卡不会突出显示。当我将viewpager滑动到下一个选项卡然后返回时,它会突出显示。
我将颜色选择器设置为文本视图的文本颜色。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="@color/white" /> <!-- pressed -->
<item android:state_focused="true"
android:color="@color/white" /> <!-- focused -->
<item android:state_selected="true"
android:color="@color/white" />
<item android:state_active="true"
android:color="@color/white" />
<item android:state_active="false"
android:color="@color/inactive_tab_color" />
<item android:state_activated="true"
android:color="@color/white" />
<item android:color="@color/white" /> <!-- default -->
</selector>
这是标签布局。
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/red"
app:tabTextColor="@color/inactive_tab_color"
app:tabSelectedTextColor="@color/white"
app:tabIndicatorColor="@color/white"
android:layout_gravity="bottom"
app:layout_scrollFlags="scroll" />
我尝试了getTabLayout().getTabAt(0).select()
和viewPager.setCurrentItem(0)
但没有工作。该选项卡未突出显示。
任何人都可以告诉我应该怎么做才能实现这个目标?
答案 0 :(得分:0)
我找到了解决这个问题的方法。
在初始化标签的位置,我首先选择第二个标签的代码,然后是第一个标签。由于这些代码在页面向用户查看之前运行,因此他/她不会感觉到选项卡的闪烁。
我知道这不是最好的方法。这只是一个解决方法。但是由于我没有得到任何其他解决方案,我去了。代码片段如下。
onActivityCreated()
在初始化标签的位置添加上述代码。对于片段,onCreate()
,对于Activity, R <-- interface
/ \
/ \
/ \
BR RR <-- abstract classes
/ | \ / | \
/ | \ / | \
BRA BRB BRC RRA RRB RRC <-- classes
。