使用自定义textview的Tablayout,在首次启动时没有更改选定的状态颜色

时间:2015-08-06 20:43:38

标签: android android-layout textview android-tablayout

我试图在tablayout的自定义文本视图中找出一些荒谬的东西。当我启动应用程序时,第一个选项卡的文本视图是默认颜色,但是当我浏览其他选项卡并返回第一个选项卡时,它可以正常工作。这是代码。

selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_selected="true"
            android:color="#FFFFFF"/> <!-- selected -->
        <item android:color="@color/red_highlight"/> <!-- default -->
</selector>

MainActivity.java

 tabLayout = (TabLayout) findViewById(R.id.tabs);
 tabLayout.setupWithViewPager(viewPager);
 tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
 tabLayout.getTabAt(0).setCustomView(R.layout.tab_custom_view);
 tabLayout.getTabAt(1).setCustomView(R.layout.tab_custom_view);
 tabLayout.getTabAt(2).setCustomView(R.layout.tab_custom_view);

tab_custom_view.xml

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tab_tittle"
        android:text="Tab1"
        android:textStyle="bold"
        android:textColor="@color/selector"/>

启动应用时,第一个标签是默认颜色。单击其他选项卡并返回到第一个选项卡后,它将处于选定的颜色。但是应该如何,当我启动应用程序时,第一个选项卡被选中并且应该是选定的颜色。

1 个答案:

答案 0 :(得分:8)

&#34; state_selected&#34;当使用键盘/ dpad /轨迹球/等选择项目时使用。因此,当您启动应用程序时,它不会被选中,当您选择选项卡时,它会被选中。