Android 突出显示类似youtube应用程序的ListView项目?

Android 突出显示类似youtube应用程序的ListView项目?,android,listview,android-listview,Android,Listview,Android Listview,您好,我正在开发一个应用程序,当我在listitem上选择时,它的背景颜色应该会改变,并且它还应该在listitem的左侧显示一个单色垂直条,就像它在youtube应用程序中显示的那样 图像附在下面: 我知道如何更改listview项目单击的背景色,但如何添加youtube应用程序中显示的红线。为此,我考虑在listview项目xml中添加一个视图,我将在项目单击事件中使其可见。但是在这种情况下,我如何对其他listview项目隐藏该视图?或者他们还有其他简单的方法来实现这一点吗?您应该实现一

您好,我正在开发一个应用程序,当我在listitem上选择时,它的背景颜色应该会改变,并且它还应该在listitem的左侧显示一个单色垂直条,就像它在youtube应用程序中显示的那样

图像附在下面:


我知道如何更改listview项目单击的背景色,但如何添加youtube应用程序中显示的红线。为此,我考虑在listview项目xml中添加一个视图,我将在项目单击事件中使其可见。但是在这种情况下,我如何对其他listview项目隐藏该视图?或者他们还有其他简单的方法来实现这一点吗?

您应该实现一个后台选择器。为此,为不同的行状态(选中、聚焦等)创建一个具有不同可绘制内容的XML文件。你可以找到很多关于如何做到这一点的例子。例如:

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


之后,只需将您的行背景可绘制设置为此文件。

要创建此类列表视图,您需要创建自定义适配器。创建包含所有元素的视图。使用自定义ArrayListAdapter和背景颜色的背景选择器填充列表


此外,对于垂直条,默认视图将不可见,并且对所选内容可见。创建一个公共静态列表,以便即使在视图关闭后也能跟踪所选内容。

尝试使用此可绘制的项目状态\u pressed:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="@android:color/holo_red_dark" />
        </shape>
    </item>
    <item android:left="10dp">
        <shape>
            <solid android:color="@android:color/black" />
        </shape>
    </item>
</layer-list>


使用可绘制图像(9个补丁图像)@PankajKumar没有得到您的解决方案。请详细说明您是否知道列表视图的自定义选择器?如果是,则使用图像而不是颜色。我知道这一点,但如何通过可绘制添加红线?我应该使用哪个元素、属性?你的意思是什么?您所需要做的只是创建一个带有红线的绘图(来自图像)。根据您使用的单个绘图,我们可以实现该红线,并更改列表项的背景颜色?您可以定义3个绘图,每个用于不同的列表状态:)您知道如何做还是需要一些建议?