如何在ActionBarSherlock的自定义视图中按下的项目上自定义颜色

时间:2014-05-04 01:21:23

标签: android actionbarsherlock android-drawable

我有一个带有自定义视图的ActionBarSherlock的应用程序,该视图具有一些可点击的线性布局,但它们在视觉上无法响应点击/点击。 自定义视图如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:orientation="horizontal"
    android:gravity="right" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:duplicateParentState="true"
        android:layout_gravity="right"
        android:background="@drawable/toolbar_button_background_drawable"
        android:padding="10dp"
        android:gravity="center" >

        <TextView
            android:duplicateParentState="true"
            android:id="@+id/decrease_fontsize"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:layout_marginRight="4dp"
            android:clickable="true"            
            android:text="-A"
            android:textColor="#333"
            android:textSize="14sp" />
    </LinearLayout>
</LinearLayout>

使用以下drawable:(toolbar_button_background_drawable.xml)

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

hover.9.png 只是一个背景......

但是当我点击此文本时,会触发onclick侦听器,但在视觉上不会更改LinearLayout

1 个答案:

答案 0 :(得分:0)

当您将android:duplicateParentState="true"设置为视图时,视图将从其直接父级而非自身获得其可绘制状态(聚焦,按下等)。因此parent Layout应为clickable

只需将android:clickable="true"添加到内部parent layout的{​​{1}}。