去除ListView滑到顶部和底部时边缘的黑色阴影:
android:fadingEdge="none"
去除拖动时默认的黑色背景:
android:cacheColorHint="#00000000"
去除选中时的黄色底色:
android:listSelector="#00000000"
去除行与行之间的黑线:
msgList.setDivider(null);
ListView刷新后自动滚到最底部:
msgList.setSelection(msgList.getAdapter().getCount()-1);
以上,自然也可以进行自定义颜色处理。
让点击后的item背景变色,可以如下listview设置:
android:listSelector="@drawable/selector_msg_list"
selector_msg_list.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white" android:state_pressed="false"/>
<item android:drawable="@color/message_item_press_bg" android:state_pressed="true"/>
</selector>
这里的颜色放在colors.xml文件里:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<color name="transparent">#00000000</color>
<color name="touming">#00000000</color>
<color name="baiduShangHuTextColor">#a3a7af</color>
<color name="baiduShangHuTextPromptColor">#C5C7CB</color>
<color name="backgound">#DEDEDE</color>
<color name="black">#000000</color>
<color name="white">#FFFFFF</color>
<color name="gray">#F4F4F4</color>
<color name="orange">#F48108</color>
<color name="light_black">#4F4F4F</color>
<color name="blue">#0089E0</color>
<color name="red">#ffff0000</color>
<color name="stroke_gray">#dfdfdf</color>
<color name="green">#B4E087</color>
<color name="title_bar">#01a9ce</color>
<color name="class_news_word">#8a8a8a</color>
<color name="class_photo_bg">#E8E8E8</color>
<color name="login_input_focus_bg">#2EA0BA</color>
<color name="message_item_press_bg">#d6d6d6</color>
<color name="space_item_bg">#F3F3F3</color>
</resources>
一般的做法是将listview的分隔线去掉,再item加上底线:
<LinearLayout android:id="@+id/msg_line" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="1dp" android:layout_marginLeft="13dp" android:layout_marginTop="13dp" android:background="#d6d6d6" />
完整的如下:
list
<ListView
android:id="@+id/msg_list"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#ffffff"
android:divider="#00000000"
android:dividerHeight="0dp"
android:fadingEdge="none"
android:listSelector="@drawable/selector_msg_list"
android:fastScrollEnabled="true"
android:footerDividersEnabled="false"
android:headerDividersEnabled="false" />
item:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="15dp"
android:paddingBottom="0dp"
android:paddingLeft="5dp"
>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:paddingRight="10dp"
>
<TextView
android:id="@+id/msg_title"
android:layout_width="wrap_content"
android:layout_marginLeft="13dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="语文"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:textSize="15sp"
android:textColor="#818181"
android:background="@drawable/text_shape"/>
<TextView
android:id="@+id/msg_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="25dp"
android:layout_centerVertical="true"
android:text="14-1-2"
android:textSize="15sp"
android:textColor="#818181"
android:layout_alignParentRight="true"/>
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:src="@drawable/arrow"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingRight="10dp"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/red_dot"
android:layout_width="8dp"
android:layout_height="8dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:src="@drawable/red"
/>
<TextView
android:id="@+id/msg_content"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="北大附小三年级的学生参观了国家图书馆,学些了很多历史知识。"
android:minLines="2"
android:maxLines="2"
android:ellipsize="end"
android:lineSpacingMultiplier="1.2"
android:textSize="15sp"
android:textColor="@color/black"/>
</LinearLayout>
<LinearLayout
android:id="@+id/msg_line"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_marginLeft="13dp"
android:layout_marginTop="13dp"
android:background="#d6d6d6"
/>
</LinearLayout>
效果如下:

本文介绍如何通过设置属性去除ListView的各种默认样式,包括边缘阴影、拖动背景、选中底色及行间分隔线,并展示了如何实现自定义点击效果。

6759

被折叠的 条评论
为什么被折叠?



