您好我正在开发一个应用程序,当我选择一个listitem时,它的背景颜色应该改变,它还应该在listitem的左侧显示一个单色的垂直条,就像它出现在youtube应用程序中一样。
图片附于下方:
我知道如何更改listview项目上的背景颜色,但是如何添加在youtube应用程序中正在使用的红线。为此,我想到在listview项目xml中添加一个视图,我会在项目点击事件中看到它。但在这种情况下,我将如何隐藏其他列表视图项目中的视图?或者他们是否有其他简单的方法来实现这一目标?
答案 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填充列表并使用背景选择器作为背景颜色。
此外,对于垂直条,默认视图将不可见,并且对选区可见。创建一个公共静态列表,以便在视图关闭后保持选择轨迹。