布局文件
<ListView
android:id="@+id/id_send_gift_pop_listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="1px"
android:layout_marginRight="1px"
android:background="@color/transparent"
android:cacheColorHint="@drawable/transparent"
android:divider="@color/transparent"
android:fadingEdge="none"
android:fadingEdgeLength="0px"
android:footerDividersEnabled="false"
android:headerDividersEnabled="false"
android:listSelector="@color/transparent"
android:padding="0dp" />
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="match_parent"
android:gravity="center"
android:id="@+id/view"
android:background="@drawable/list_bg"
android:orientation="vertical" >
<!-- android:descendantFocusability="blocksDescendants"
-->
<TextView
android:id="@+id/info"
android:text="default"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp" />
<Button
android:id="@+id/send"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:gravity="center"
android:textSize="18sp"
android:textColor="#ff0000"
android:text="send"
android:layout_marginRight="20dp" />
</RelativeLayout>
对于事件的响应
如果选用listView自带的方法onItemClick
,在布局文件中如果有子控件可以获得焦点的情况下,那么OnItemClick将会失效。
解决方法是在子布局的根下添加属性:**
android:descendantFocusability="blocksDescendants"
摈弃ListView onItemClick方法的做法是将布局的根Id和单独的需要监听的操作分别设置监听。
解惑
android:footerDividersEnabled
android:headerDividersEnabled
这里两个属性都只对HeaderView和FooterView有效,如果你没有在ListView加入HeaderView或者FooterView,无论设置什么值,都是没有作用的。如果ListView的高度是fill_parent,那么当Item很少,而没有能填满ListView的高度的时候,底部就会出现分割线。反之,如果ListView的高度是wrap_content,那么ListView的高度就是随着Item的增多而变高的,最后一行的Item始终是达到了ListView的底部,也就不会出现分割线了。
美化
1、listview在拖动的时候背景图片消失变成黑色背景,等到拖动完毕我们自己的背景图片才显示出来
解决:在XML中加入
android:scrollingCache=”false” 或 android:cacheColorHint=”#00000000″
2、listview的上边和下边有黑色的阴影
解决: android:fadingEdge=”none”
3、修改listview的Item默认选择时的黄色背景
解决:在java文件中使用listview.setSelector()
方法,或使用如下代码
android:listSelector="#00000000"
//这样写是透明的,也可加入Drawable图片