标签:
<ListView android:id="@id/list_temple_container" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffffff" android:cacheColorHint="#00000000" android:divider="@drawable/list_divider" android:dividerHeight="1dip" android:fastScrollEnabled="false" android:headerDividersEnabled="true" android:listSelector="#00000000" android:scrollingCache="true" />
list_divider
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:angle="0" android:centerColor="#ffe6e6e6" android:endColor="#ffe6e6e6" android:height="1px" android:startColor="#ffe6e6e6" /> </shape>
android:divider="@drawable/list_divider" item之间的分割线
android:dividerHeight="1dip" item之间的分割线高度
android:fastScrollEnabled="false"
android:headerDividersEnabled="true"
android:cacheColorHint="#00000000" 系统切换item时的缓存色
android:scrollbars="none" 不显示滚动条
android:listSelector="#00000000"选中时背景色
通过设置这样的属性可以做出更加美观的列表
首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和false
android:stackFromBottom="true"
第二是transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部。
android:transcriptMode="alwaysScroll"
第三cacheColorHint属性,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性 android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果。
如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了
第四divider属性,该属性作用是每一项之间需要设置一个图片做为间隔,或是去掉item之间的分割线
android:divider="@drawable/list_driver" 其中 @drawable/list_driver 是一个图片资源,如果不想显示分割线则只要设置为android:divider="@drawable/@null" 就可以了
第五fadingEdge属性,上边和下边有黑色的阴影
android:fadingEdge="none" 设置后没有阴影了~
第六scrollbars属性,作用是隐藏listView的滚动条,
android:scrollbars="none"与setVerticalScrollBarEnabled(true);的效果是一样的,不活动的时候隐藏,活动的时候也隐藏
第七fadeScrollbars属性,android:fadeScrollbars="true" 配置ListView布局的时候,设置这个属性为true就可以实现滚动条的自动隐藏和显示。
android:scrollbars="vertical"
android:background="@null"
android:headerDividersEnabled="true"
android:listSelector="@drawable/x_room_listitem"
这些个呢???
android:listSelector="@drawable/x_room_listitem" 设置选中颜色
android:footerDividersEnabled 设成flase时,此ListView将不会在页脚视图前画分隔符。此属性缺省值为true
android:headerDividersEnabled设成flase时,此ListView将不会在页眉视图前画分隔符。此属性缺省值为true
若 有别的会把焦点弄走就 点不到了 那要先把那个的焦点给false点 或者
如果是通过ListAdapter返回的view,可以给该view添加属性
android:descendantFocusability="blocksDescendants"
也可在代码中设置此属性,这样就可以将view中子控件的事件阻止,然后ListView就会响应了。
将ListView的背景色设置为白色,ListIView控件上下滑动时,背景就会变为黑色,但是图片会正常显示,这怎么解决呢?网上搜了一下,
如果大家在非黑色背景下使用ListView控件时,Android默认可能在滚动ListView时这个列表控件的背景突然变成黑色。这样可能导致程序的黑色的背景和主程序的主题既不协调。解决的方法Google在设计Android时也考虑了,在Layout的ListView中加入 android:cacheColorHint="#00000000" 的属性即可,或者是调用ListView的setCacheColorHint(0);方法。
在ListView的item项里使用CheckBox或者Button时,OnItemClickListener无响应的问题
在Android软件设计与实现中我们通常都会使用到ListView这个控件,系统有一些预置的Adapter可以使用,例如SimpleAdapter和ArrayAdapter,但是总是会有一些情况我们需要通过自定义ListView来实现一些效果,那么在这个时候,我们通常会碰到自定义ListView无法选中整个ListViewItem的情况,也就是无法响应ListView的onItemClickListener中的onItemClick()方法,
我们看到了一行代码定义的变量的意思是“当前View将屏蔽他所有子控件的Focus状态,即便这些子控件是可以Focus的”,其实这段话的意思就是这个变量代表着当前的View将不顾其子控件是否可以Focus自身接管了所有的Focus,通常默认能获得focus的控件有Button,Checkable继承来的所有控件,这就意味着如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了,也就会响应onItemClickListener中的onItemClick()方法,然而将ListView的Item Layout的子控件focusable属性设置为false有点繁琐,我们可以通过对Item Layout的根控件设置其android:descendantFocusability=”blocksDescendants”即可,这样Item Layout就屏蔽了所有子控件获取Focus的权限,不需要针对Item Layout中的每一个控件重新设置focusable属性了,如此就可以顺利的响应onItemClickListener中的onItenClick()方法了。例如我的ListViw的每个item项是RelativeLayout,那么我就可以设置RelativeLayout的android:descendantFocusability=”blocksDescendants”即可。注意:这个属性不能设置给ListView,设置了也不起作用。
第二种方法是将ListView子控件中的CheckBox或者ImageButton,Button的android:focusable="false"属性即可。
第三种方法是不适用CheckBox,或者Button,使用TextView,等等完全可以代替Button。
标签:
原文地址:http://www.cnblogs.com/xiaoli3007/p/4210695.html