Почему я не могу применить другой textColor к вкладкам? - PullRequest
0 голосов
/ 25 ноября 2011

Я делаю свои собственные пользовательские вкладки и хочу изменить textColor вкладки в зависимости от того, выбран он или нет.

Я создал свой собственный стиль в «значениях», который предназначен только для изменения textColor:

<style name="TabTextStyle" parent="@android:attr/tabWidgetStyle">
    <item name="android:textColor">@drawable/tab_text_color</item>
</style>

... на основе отрисовки, которая рассматривает "state_selected":

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:textColor="#000000"
        android:state_selected="true"/> 
    <item        
        android:textColor="#FFFFFF"/>
</selector>

Затем я стилизовал TextView в моем TabIndicator, который находится в макете:

<TextView android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true"
    style="@style/TabTextStyle"/> 

Это приводит к сбою моего приложения: \

  • Если я установлю TabTextStyle на фиксированный цвет, все будет хорошо.
  • Если я установлю стиль на? @Android: attr / tabWidgetStyle ... все работает хорошо, за исключением того, что цвета не определены так, как я хочу.

У кого-нибудь есть идеи?

Также я попытался установить цвет внутри селектора, где я выбираю значки, основываясь на выбранном состоянии. Это приводит к исчезновению значков.

Я могу только предположить, что я что-то пропустил и что я поступаю по этому поводу совершенно неправильно, но, как показывают учебники, это должно быть сделано.

Надеюсь, кто-то может помочь :) Спасибо!

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

Попробуйте сделать следующее

<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- When selected, use grey -->
 <item android:drawable="@color/black"
      android:state_selected="true" />
 <!-- When not selected, use white-->
 <item android:drawable="@color/white" />
</selector>

Определите свои собственные цветовые ресурсы или используйте ресурсы, предоставляемые Android - "@android: color / black" и т. Д.

0 голосов
/ 01 декабря 2011

Это работает! Проблема заключалась в том, что мне нужно, чтобы селектор был ColorSelector - без использования textColors или рисования.

<?xml version="1.0" encoding="utf-8"?>
<selector     xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_selected="true"
        android:color="@color/tabTextSelected"/> 
    <item        
        android:color="@color/tabTextUnselected"/>  
</selector>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...