我在列表视图中创建了一个自定义形状来制作圆角。当我向其添加选择器代码时,状态按下不起作用我所期望的。实际上,状态按下的颜色显示在自定义行列表之外。即它显示每个角落末端的颜色。我该怎么解决这个问题?
这是我的feed_list
布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<ListView
android:id="@+id/listView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:dividerHeight="10dp"
android:listSelector="@drawable/list_selector" >
</ListView>
</LinearLayout>
自定义行布局list_item
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="7dp"
android:background="@drawable/customshape"
>
<ImageView
android:id="@+id/thumb"
android:layout_width="60dp"
android:layout_height="60dp"
android:contentDescription="@string/app_name" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_toLeftOf="@+id/arrow"
android:layout_toRightOf="@+id/thumb"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
android:text="@string/title"
android:textSize="16dp"
android:textStyle="bold" />
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginTop="5dp"
android:padding="2dp"
android:text="@string/date"
android:textColor="#7F7F7F"
android:textSize="10dp" />
</RelativeLayout>
<ImageView
android:id="@+id/arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="5dp"
android:contentDescription="@string/app_name"
android:src="@drawable/arrow_next" />
</RelativeLayout>
list_selector
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- pressed state. -->
<item android:state_pressed="true"
android:drawable="@drawable/bg_yellow_dark_round"/>
</selector>
bg_yellow_dark_round
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#AC7E00" />
<stroke
android:width="2dp"
android:color="#AC7E00" />
<corners
android:bottomLeftRadius="20dp"
android:bottomRightRadius="20dp"
android:topLeftRadius="20dp"
android:topRightRadius="20dp" />
</shape>
customshape
(圆角)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp" />
<stroke android:width="1dp" android:color="#006699" />
<solid android:color="#fff"/>
</shape>
如果我删除android:background="@drawable/customshape"
中的list_item
,则可以。但是,我需要圆角和它。
答案 0 :(得分:0)
为什么你的列表选择器在列表视图中而不在list_item里面,如果我理解你,你会列出视图,它的所有角都是圆角的。 在listview中你点击的每个智慧都有一个选择器,对吧? 如果是这样,你将把你的customshape放在listview和listItem上的list_selector上。