从样式中重新引用可绘制的选择器将导致图像按钮为空



我想让ImageButtons根据其状态更改图像。(与九个插科打诨和脸书应用程序中的"点赞"按钮相同)。

我为它们中的每一个定义了一个样式,该样式将选择器引用为可绘制对象,但当我运行程序时,图像不会出现。你能告诉我这种方法有什么问题吗?(对不起我英语不好)

values文件夹中的comment_actions_style:

    <style name="LikeStyle">
        <item name="android:src">@drawable/like</item>
    </style>
    <style name="DislikeStyle">
        <item name="android:src">@drawable/dislike_normal</item>
    </style>
    <style name="ReplyStyle">
        <item name="android:src">@drawable/reply_normal</item>
    </style>
    <style name="ShareStyle">
        <item name="android:src">@drawable/share</item>
    </style>
</resources>

和drawable文件夹中的drawable一样:(其他按钮相同)

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/like_clicked" android:state_pressed="true"/>
 <!-- pressed -->
    <item android:drawable="@drawable/like_focused" android:state_focused="true"/>
 <!-- focused -->
    <item android:drawable="@drawable/like_normal"/>
 <!-- default -->
</selector>

编辑:
我忘了提一下,我有一个列表视图,它的项目是用户评论,评论有上面描述的按钮。

这是我的物品布局(部分)

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/comment_content"
    android:orientation="horizontal"
    >
    <include
        android:id="@+id/like"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        layout="@layout/comment_actions"
        style="@style/LikeStyle" />
</LinearLayout>

和comment_actions布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/comment_action"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="5dip">
        <ImageButton
            android:id="@+id/comment_action_img"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@android:color/transparent"
            />
        <TextView 
            android:id="@+id/comment_action_num"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/comment_action_img"
            android:gravity="center"
            android:layout_marginLeft="5dip"/>
</RelativeLayout>

如果重要的话,这些按钮也继承自布局。

这里,您正在为comment_actions布局设置样式,它是一个相对布局,无法响应您的"android:src"属性。

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/comment_content"
android:orientation="horizontal"
>
<include
    android:id="@+id/like"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content"
    layout="@layout/comment_actions"
    style="@style/LikeStyle" /> <!--here,you are setting a style for the RelativeLayout -->
</LinearLayout>

相关内容

  • 没有找到相关文章

最新更新