我将要有一个包含一些项目的列表视图,当我在列表视图中选择一行时,它应该有一个边框。那我怎么能达到这样的目的呢 我试试这个。但它只有在我按行
时才有效<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" ><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<stroke android:width="4dp" android:color="#87CEFA" />
<solid android:width="1dp" android:color="@color/greylight" />
<padding android:bottom="4dp" android:left="3dp" android:right="3dp" android:top="6dp" />
<corners android:radius="5px" />
</shape></item>
<item><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:width="1dp" android:color="@color/greylight" />
<padding android:bottom="4dp" android:left="3dp" android:right="3dp" android:top="6dp" />
</shape></item>
</selector>
这是我的行
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/backColor"
android:orientation="horizontal" >
<RelativeLayout
android:id="@+id/relativeMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:background="@drawable/list_item_selector" >
<TextView
android:id="@+id/txt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:textColor="@color/RedColor"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
</LinearLayout>
答案 0 :(得分:0)
尝试在选择器
中的某个项目中使用android:state_focused状态
<item android:state_focused="true" ><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:width="1dp" android:color="@color/greylight" />
<padding android:bottom="4dp" android:left="3dp" android:right="3dp" android:top="6dp" />
</shape></item>
答案 1 :(得分:0)
尝试将此代码用作可绘制文件夹中项目的边框:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle" >
<solid android:color="@android:color/transparent" />
<stroke
android:width="1px"
android:color="#61979797" />
<corners
android:bottomLeftRadius="1dp"
android:bottomRightRadius="1dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp" />
</shape>
并将此代码也用于drawable文件夹中的选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/border" android:state_selected="true"></item>
<item android:drawable="@android:color/transparent"></item>
</selector>
答案 2 :(得分:0)
您需要在选择器中使用state_selected="true"
。
这是我在其中一个项目中使用的类似内容:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/White"/>
</shape>
</item>
</selector>