Android 如何在LinearLayout上启用“按下”外观

Android 如何在LinearLayout上启用“按下”外观,android,focus,android-linearlayout,android-view,Android,Focus,Android Linearlayout,Android View,当我的ListView为空时,我会显示以下UI: 现在,我希望当用户按下这个新的提醒布局时,它将变为高亮状态,在IC中为蓝色焦点背景,在GB中为黄色 布局是可单击的,并且调用onClick方法,但是当用户按下手指时,没有任何指示 我试着将focusable设置为true,但没有成功 我可以做些什么使任何视图具有默认的按下效果 谢谢大家! 我不知道我是否理解正确。如果要为此布局创建按下状态,则必须准备状态可绘制xml。在上面,您可以设置在按下状态下布局的外观。我不确定,但您的问题似乎有点模糊。根

当我的ListView为空时,我会显示以下UI:

现在,我希望当用户按下这个新的提醒布局时,它将变为高亮状态,在IC中为蓝色焦点背景,在GB中为黄色

布局是可单击的,并且调用onClick方法,但是当用户按下手指时,没有任何指示

我试着将focusable设置为true,但没有成功

我可以做些什么使任何视图具有默认的按下效果


谢谢大家!

我不知道我是否理解正确。如果要为此布局创建按下状态,则必须准备状态可绘制xml。在上面,您可以设置在按下状态下布局的外观。

我不确定,但您的问题似乎有点模糊。根据我的理解,你想要什么可能会在这篇文章中建议你的布局,你可以像下面这样用drawable设置背景

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@android:drawable/star_big_on" />
    <item android:state_pressed="true" android:drawable="@android:drawable/star_big_on" />
    <item android:drawable="@android:drawable/star_big_off" />
</selector>
如下图所示

<?xml version="1.0" encoding="UTF-8"?>

并设置您的线路布局

当然不是。这不是ListView的一部分。这是一个单独的布局,我想有一个紧迫的背景哦,那么对不起,很高兴你找到了答案!我想会有一个内置的方式,像pressable,但它的工作原理是无纸的,所以谢谢你!另外,请看下面的另一个问题。感谢您提供的详细信息,但是@Serapis回答了更多的教学答案,因此我接受了他的答案。如果有人想获得完整的解决方案,请查看此存储库:有自定义的可单击/可检查线性布局,如切换按钮
<item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/left_radio_selected"/>
<item android:state_enabled="false" android:drawable="@drawable/left_radio_inactive"/>
<item android:state_enabled="true"  android:state_selected="true" android:drawable="@drawable/left_radio_selected"/>
<item android:drawable="@drawable/left_radio_active"/>