eclipse 选择器:“< item>标记需要'drawable'属性”

hivapdat  于 2023-04-20  发布在  Eclipse
关注(0)|答案(4)|浏览(153)

我有以下按钮:

<Button
            android:id="@+id/searchCompaniesButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"          
            android:drawableLeft="@drawable/company_icon"
            android:drawablePadding="10dp"
            android:drawableRight="@drawable/next_icon_big"
            android:gravity="left|center_vertical"
            android:paddingLeft="10dp"
            android:backgroud="@drawable/transparent_button_selector"
            android:paddingRight="10dp"
            android:text="@string/searchCompanies" />

transparent_button_selector是/drawable-ldpi文件夹中的transparent_button_selector.xml

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/lightGrey"
          android:state_pressed="true" />
    <item android:drawable="@color/veryLightGrey"
          android:state_focused="true" />
    <item android:drawable="@null" />
</selector>

我也有一个colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <color name="lightGrey">#3d3d3d</color>
  <color name="veryLightGrey">#4d4d4d</color>
</resources>

但是当我运行我的应用程序时,log会说:
'item'标记需要'drawable'属性”
搞什么鬼?我知道类似的问题很少,但答案是没有帮助的。我试过:

  • 重新启动Eclipse
  • 清洁工程
  • 在真实的设备上运行应用程序(crush)
bxjv4tth

bxjv4tth1#

替换如下:

<item android:drawable="@null" />

其中:

<item android:drawable="@color/transparent" />

并使用代码在颜色文件中添加透明颜色:#00000000

whlutmcx

whlutmcx2#

drawable属性总是带@drawable.即你必须替换

<item android:drawable="@color/..."
      android:state_pressed="true" />

<item android:drawable="@drawable/..."
      android:state_pressed="true" />

用这个

<item
    android:state_pressed="true"
    android:drawable="@drawable/selected_state" />

然后在可绘制文件夹中创建一个形状,名称为“selected_state”,如下所示。

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
       android:shape="rectangle">
       <solid android:color="@color/lightGrey" />
</shape>
but5z9lq

but5z9lq3#

您的android:background属性拼写错误:
Android:backgroud="@drawable/transparent_button_selector”
'background'中缺少字母'n'

pkbketx9

pkbketx94#

如果使用selector来显示列表中的哪些项目是当前选中的,那么最佳答案就是:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/activated_color"  android:state_activated="true"/>
</selector>

然后,如果视图为isActivated状态,则选择的项目将由isActivated状态确定。
为什么透明的背景比更直接的“无背景”声明更好?

相关问题