在我的Android应用中,我有一个包含其他视图的LinearLayout视图。 LinearLayout是可点击的,但是当它被点击时,它不会像它应该那样突出橙色。我已经尝试使用选择器但它不起作用。
我怎样才能突出显示它?
答案 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>
这样做的缺点是您在布局树中添加了另一个图层。