StateListDrawable не работает на TableRow - PullRequest
0 голосов
/ 23 октября 2011

Я пытаюсь заставить TableRow в TableLayout изменить цвет фона, когда пользователь касается его, но, похоже, он не работает.Когда я нажимаю на TableRow, ничего не происходит.Это то, что у меня пока есть:

Макет:

 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
  style="@style/BaseStyle"
   android:stretchColumns="*">

      <TableRow style="@style/TableRow">   
           <TextView 
                 android:id="@+id/settings
                 style="@style/BaseStyle.SettingsText"
                 android:text="Settings"
                 android:onClick="onClick"
                 android:clickable="true"
            />  
      </TableRow>

 </TableLayout>

Стиль:

<style name="TableRow">
     <item name="android:background">@drawable/onclickhighlight</item>
</style>

Drawable (onclickhighlight.xml)

<selector xmlns:android="http://schemas.android.com/apk/res/android">

     <!--  Active state --> 
     <item android:state_selected="true" android:state_focused="false" android:state_pressed="false" android:drawable="@android:color/background_light" />

      <!--  Inactive state-->
     <item android:state_selected="false" android:state_focused="false" android:state_pressed="false" android:drawable="@android:color/transparent" />

      <!--  Pressed state-->
      <item android:state_selected="true" android:state_focused="true" android:state_pressed="true" android:drawable="@android:color/background_light" />

</selector>

Цвета:

 <resources>
     <color name="background_light">#FFFFFF</color>
 </resources>

Я знаю, что TableRow использует onclickhighlight StateListDrawable, потому что, если я изменю свойство android: drawable для "Неактивного состояния" с @android: color / transparent, на @android: color / background_light,цвет фона меняется на белый.

Ответы [ 2 ]

0 голосов
/ 02 сентября 2012

У меня была такая же проблема, и это то, что у меня сработало.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">   
    <item android:state_pressed="true" android:drawable="@color/yourcolor" />
    <item android:drawable="@color/yournormalbackground"/> 
</selector>
0 голосов
/ 29 октября 2011

У меня точно такая же проблема, и я пытаюсь найти ответ.Бьюсь об заклад, если вы удалите android:onClick="onClick" из строки XML таблицы, вы найдете, что подсветка будет работать.Но тогда как бы вы могли получить событие click для связывания с нужным вам методом?!

...