突出显示像youtube应用程序的ListView项目?

时间:2013-07-10 05:21:00

标签: android listview android-listview

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

图片附于下方: enter image description here

我知道如何更改listview项目上的背景颜色,但是如何添加在youtube应用程序中正在使用的红线。为此,我想到在listview项目xml中添加一个视图,我会在项目点击事件中看到它。但在这种情况下,我将如何隐藏其他列表视图项目中的视图?或者他们是否有其他简单的方法来实现这一目标?

3 个答案:

答案 0 :(得分:3)

尝试将此drawable用于item_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>

答案 1 :(得分:0)

您应该实现背景选择器。为此,创建一个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>

之后只需将行背景Drawable设置为此文件。

答案 2 :(得分:0)

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

此外,对于垂直条,默认视图将不可见,并且对选区可见。创建一个公共静态列表,以便在视图关闭后保持选择轨迹。