我是一个Android新手,试图学习UI的一面,并且正在努力。这就是我现在所拥有的:
breeds_listing.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<ListView android:id="@+id/breedsListView"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:dividerHeight="0px" android:divider="#00000000"></ListView>
</LinearLayout>
breeds_listing_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/list_item_background"
android:orientation="horizontal" >
<TextView android:id="@+id/allbreeds_single_item"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:gravity="center_horizontal"></TextView>
</LinearLayout>
list_item_background.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#043402" />
<stroke android:width="3dp" color="#ffff8080" />
<corners android:radius="8dp" />
<padding android:left="10dp" android:top="10dp" android:right="10dp"
android:bottom="10dp" />
</shape>
我正在努力弄清楚我如何设计所选项目的样式?目前,所选项目具有可怕的橙色背景,在圆形绿色矩形下,呈现橙色轮廓效果。我确信我没有按照最佳做法做事,所以任何建议或改进都会受到高度赞赏。
非常感谢, d。
答案 0 :(得分:27)
我这样做:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape >
<solid android:color="#929292" />
</shape>
</item>
<item>
<shape >
<solid android:color="#FFFFFF" />
</shape>
</item>
</selector>
因此,您可以使用此属性android:state_pressed="true"
在我的示例中,单元格背景仅为白色,按下时为灰色。
我希望它有所帮助!
答案 1 :(得分:3)
您必须使用StateListDrawable。
您可以找到ListView项目here的示例。
如果您在选择项目时想要某种颜色/可绘制,请使用android:state_focused="true"
。