StateListDrawable不能在tablelow上工作



我试图得到一个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>

可拉的(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>

我知道tableow正在使用onclickhighlight StateListDrawable,因为如果我改变"Inactive state"的android:drawable属性从@android:color/transparent,到@android:color/background_light,背景颜色变为白色。

我有完全相同的问题,我正试图找到答案。我敢打赌,如果您要从表行xml中删除android:onClick="onClick",您会发现高亮显示可以工作。但是,如何让click事件与您想要的方法相关联呢?

我也有同样的问题,这就是我的工作。

<?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>

相关内容

  • 没有找到相关文章

最新更新