Каково состояние нажатой вкладки в Android - PullRequest
1 голос
/ 16 сентября 2010

Я пытаюсь изменить табикон при нажатии вкладки (т. Е. Когда он меняет цвет при нажатии на вкладку, но еще не отпущен) Я создал селектор следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Non focused states --> 
    <item android:state_focused="false" 
          android:state_selected="false" 
          android:state_pressed="false" 
          android:drawable="@drawable/ic_tab_icon1" /> 
    <item android:state_focused="false" 
          android:state_selected="true" 
          android:state_pressed="false" 
          android:drawable="@drawable/ic_tab_icon2" /> 

    <!-- Focused states --> 
    <item android:state_focused="true" 
          android:state_selected="false" 
          android:state_pressed="false" 
          android:drawable="@drawable/ic_tab_icon3" /> 
    <item android:state_focused="true" 
          android:state_selected="true" 
          android:state_pressed="false" 
          android:drawable="@drawable/ic_tab_icon4" /> 

    <!-- Pressed --> 
    <item android:state_pressed="true" 
          android:drawable="@drawable/ic_tab_icon5" /> 
</selector> 

Однако по какой-то причине достигаются только первые два состояния (используются только значок 1 и значок 2). Может кто-нибудь сказать мне, каково правильное состояние для «нажатой, но не выбранной» вкладки?

* Отредактировано, чтобы прояснить новую ситуацию

Ответы [ 2 ]

0 голосов
/ 16 сентября 2010

это значение по умолчанию tab_indicator.xml для Android. получил от этого gitkernal . Вы должны поддерживать все эти состояния.

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Non focused states --> 
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/ic_tab_north_normal" /> 
    <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/ic_tab_north_selected" /> 

    <!-- Focused states --> 
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/ic_tab_north_normal" /> 
    <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/ic_tab_north_selected" /> 

    <!-- Pressed --> 
    <item android:state_pressed="true" android:drawable="@drawable/ic_tab_north_normal" /> 
</selector> 
0 голосов
/ 16 сентября 2010

Вот tab_indicator.xml из Android 2.2:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />
    <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" />

    <!-- Focused states -->
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_focus" />
    <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focus" />

    <!-- Pressed -->
    <item android:state_pressed="true" android:drawable="@drawable/tab_press" />
</selector>

У вас ничего нет, где android:state_pressed="true".Попробуйте изменить селектор, чтобы он немного больше походил на то, что использует Android.

...