Android在列表视图中的选定列表项上留下边框

时间:2013-10-08 22:40:45

标签: android android-listview

我正在尝试像Wordpress Android应用程序那样做: https://play.google.com/store/apps/details?id=org.wordpress.android

我在导航栏中有一个列表视图。我设法通过使用选择器资源选择项目时更改背景。如何在所选项目的左侧创建一个小的彩色矩形?就像wordpress app。

修改

我的列表项布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/drawer_background_selector"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/drawer_item_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="8dp" />

    <TextView
        android:id="@+id/drawer_item_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_margin="8dp" />

</LinearLayout>

我的选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/drawer_selected" android:state_activated="true"/>
    <item android:drawable="@color/drawer_selected" android:state_selected="true"/>
    <item android:drawable="@color/drawer_selected" android:state_pressed="true"/>
    <item android:drawable="@color/drawer"/>
</selector>

2 个答案:

答案 0 :(得分:2)

您可以使用图层列表,如下所示:

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

你可以,也可以创建一个9补丁图像来跳过透支,但它不具有风格,所以我不会去那里。

答案 1 :(得分:1)

使用http://developer.android.com/guide/topics/resources/drawable-resource.html

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
            <solid android:color="LEFT COLOR HERE"/>
        </shape>
    </item>
    <item android:left="5dip">
        <shape android:shape="rectangle">
            <solid android:color="RIGHT COLOR HERE"/>
        </shape>
    </item>
</layer-list>