单击时,Clickable LinearLayout不会突出显示

时间:2013-10-04 13:19:40

标签: android-layout

在我的Android应用中,我有一个包含其他视图的LinearLayout视图。 LinearLayout是可点击的,但是当它被点击时,它不会像它应该那样突出橙色。我已经尝试使用选择器但它不起作用。

我怎样才能突出显示它?

2 个答案:

答案 0 :(得分:3)

如果您希望突出显示为橙色,则可以在LinearLayout中使用它

    android:background="@android:drawable/list_selector_background"

这是Android的默认列表选择器颜色。您还可以通过创建自己的drawable来自定义颜色。像这样:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/item_pressed" android:state_pressed="true" />
    <item android:drawable="@drawable/item_focused" android:state_focused="true" />
    <item android:drawable="@drawable/item_checked" android:state_checked="true" />
    <item android:drawable="@drawable/item_activated" android:state_selected="true" />
    <item android:drawable="@drawable/item_activated" android:state_activated="true" />
    <item android:drawable="@android:color/transparent" />
</selector>

答案 1 :(得分:1)

如果您有很多这些LinearLayouts,请说出不同的背景颜色,而您只想使用单个选择器来处理所有这些的高亮显示,你可以使用以下方法:

RES /资源/ dimens.xml

<resources>
    <color name="button_focused">#60ffffff</color>
</resources>

RES /抽拉/ button_selector.xml

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

然后在你的布局中,使用FrameLayout包装LinearLayout,如下所示:

<FrameLayout
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:foreground="@drawable/button_selector">

    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:background="#F68D5D">
    </LinearLayout>                
</FrameLayout>    

这样做的缺点是您在布局树中添加了另一个图层。