在我的 Android 应用程序中,我有一个包含其他视图的 LinearLayout 视图。LinearLayout 是可点击的,但是当它被点击时,它并没有像它应该的那样突出橙色。我已经尝试过选择器,但它不起作用。
我怎样才能让它突出显示?
在我的 Android 应用程序中,我有一个包含其他视图的 LinearLayout 视图。LinearLayout 是可点击的,但是当它被点击时,它并没有像它应该的那样突出橙色。我已经尝试过选择器,但它不起作用。
我怎样才能让它突出显示?
如果您希望突出显示为橙色,您可以在 LinearLayout 中使用它
android:background="@android:drawable/list_selector_background"
它是 Android 的默认列表选择器颜色。您还可以通过创建自己的可绘制对象来自定义颜色。像这样的东西:
<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>
如果你有很多这样的线性布局,假设有不同的背景颜色,并且你只想使用一个选择器来处理所有它们的突出显示,你可以使用以下方法:
资源/资源/dimens.xml
<resources>
<color name="button_focused">#60ffffff</color>
</resources>
res/drawable/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>
这样做的一个缺点是您在布局树中添加了另一层。