2010-10-23 48 views
0

我的Android应用程序使用TabActivity来显示其内容,它有4个选项卡,这四个选项卡都使用可绘制状态列表的图标。它们都具有相同的结构,只是不同的图像:在可绘制的Android状态列表中,state_focused被忽略

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:drawable="@drawable/icon_options_dark" android:state_selected="true" android:state_focused="false" /> 
     <item android:drawable="@drawable/icon_options_white" /> 
</selector>` 

然而,在我的HTC Desire(绿色高亮)轨迹球选择标签时,暗图像来代替光一个。一旦选项卡被选中,它就会变成白色。我究竟做错了什么?

回答

1

你需要针对不同的状态有不同的项目。在一个项目中结合几个国家(就像你一样)是绝对错误的。你的XML可能看起来像这样:

<xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/icon_options_dark" 
     android:state_selected="true" /> 
    <item android:drawable="@drawable/icon_options_light" 
     android:state_focused="true" /> 
    <item android:drawable="@drawable/icon_options_white" /> 
</selector> 

当谈到绘制绘图时,它的状态首先被检查。如果选择了第一项,那就是 - 没有专注的检查将被执行(Android仅查找第一个 - 不是“最相关的”-状态)。但如果未选中,则将执行对焦状态的检查。