问题描述
在android TabHost layout上,当用户选择标签时,选项卡的颜色暂时更改.如何禁用此颜色更改,或指定选项卡更改为的颜色?
推荐答案
更新
而不是制作自己的例子并为此担任信用,我找到了我的旧书签教程.
其他推荐答案
我建议您实现自己的tab_indicator_selector.xml.
示例:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Non focused states ... --> <!-- Focused states ... --> <!-- Pressed --> <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_pressed" /> <item android:state_pressed="true" android:drawable="@drawable/tab_pressed" /> </selector>
,这是tab_pressed.xml状态选择器:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="53dp"> <shape android:shape="rectangle"> <solid android:color="@color/white" /> </shape> </item> <item android:top="53dp" android:bottom="1dp"> <shape android:shape="rectangle"> <solid android:color="@color/white" /> </shape> </item> <item android:left="2dp" android:right="2dp"> <shape android:shape="rectangle"> <gradient android:angle="90" android:startColor="@color/black" android:endColor="@color/white" /> <stroke android:width="2dp" android:color="@color/red" /> </shape> </item> </layer-list>
可以通过创建tab_focused.xml,tab_selected.xml和tab_unseleceted.xml和设置正确的android:state_xxx组合和整个选项卡背景的颜色来实现其他状态,但是元素给出了整个选项卡背景的颜色,但您可以使用稳固矩形形状的颜色.
自定义tab_indicator(没有图片)如下:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="0dip" android:layout_height="52dip" android:layout_weight="1" android:orientation="vertical" android:background="@drawable/tab_indicator_selector" android:layout_marginTop="2dp" android:padding="2dp"> <TextView android:id="@+id/tab_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="11dp" android:textStyle="bold" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" style="?android:attr/tabWidgetStyle" /> </RelativeLayout>
问题描述
On the android TabHost layout, when the user selects a tab the color of the tab changes temporarily. How do I either disable this color change, or specify the color that the tab changes to?
推荐答案
UPDATED
Instead of making an own example and taking credit for it, I found my old bookmarked tutorial.
How to change background on Android Tabs
其他推荐答案
I'll suggest you to implement your own tab_indicator_selector.xml.
Example:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Non focused states ... --> <!-- Focused states ... --> <!-- Pressed --> <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_pressed" /> <item android:state_pressed="true" android:drawable="@drawable/tab_pressed" /> </selector>
And this is the tab_pressed.xml state selector:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="53dp"> <shape android:shape="rectangle"> <solid android:color="@color/white" /> </shape> </item> <item android:top="53dp" android:bottom="1dp"> <shape android:shape="rectangle"> <solid android:color="@color/white" /> </shape> </item> <item android:left="2dp" android:right="2dp"> <shape android:shape="rectangle"> <gradient android:angle="90" android:startColor="@color/black" android:endColor="@color/white" /> <stroke android:width="2dp" android:color="@color/red" /> </shape> </item> </layer-list>
The other states can be achieved by creating tab_focused.xml, tab_selected.xml and tab_unseleceted.xml and setting the right android:state_XXX combinations and the color of the whole tab background is given by the element, but you can use a solid color on a rectangle shape.
A custom tab_indicator (without an image) goes like this:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="0dip" android:layout_height="52dip" android:layout_weight="1" android:orientation="vertical" android:background="@drawable/tab_indicator_selector" android:layout_marginTop="2dp" android:padding="2dp"> <TextView android:id="@+id/tab_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="11dp" android:textStyle="bold" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" style="?android:attr/tabWidgetStyle" /> </RelativeLayout>