ListView





几个重要的属性==============



首先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就可以实现滚动条的自动隐藏和显示。


第八fastScrollEnabled属性 ,

很多开发者不知道ListView列表控件的快速滚动滑块是如何启用的,这里Android开发网告诉大家,辅助滚动滑块只需要一行代码就可以搞定,如果你使用XML布局只需要在ListView节点中加入  android:fastScrollEnabled="true" 这个属性即可,而对于Java代码可以通过myListView.setFastScrollEnabled(true); 来控制启用,参数false为隐藏。 还有一点就是当你的滚动内容较小,不到当前ListView的3个屏幕高度时则不会出现这个快速滚动滑块,同时该方法仍然是AbsListView的基础方法,可以在ListView或GridView等子类中使用快速滚动辅助。


第九drawSelectorOnTop属性

When set to true, the selector will be drawn over the selecteditem. Otherwise the selector is drawn behind the selected item. Thedefault value is false.

android:drawSelectorOnTop="true" 点击某一条记录,颜色会显示在最上面,记录上的文字被遮住,所以点击文字不放,文字就看不到

android:drawSelectorOnTop="false"点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的




==========================





listView.setCacheColorHint(0); 或者android:cacheColorHint="#000000" 去除listview的拖动背景色

自定义listview的时候,当你不使用android:cacheColorHint=“#00000000”会出现下面选中一个空间黑色底色的情况,破坏整体美观度:

当你不使用android:listSelector属性,默认会显示选中的item为橙黄底色,有时候我们需要去掉这种效果:





  



listview 拖动 背景图 显隐    2013 - 07 -19

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!-- 最后一条item所在的位置会闪烁 -->
    
             < ListView
                 android:id = "@+id/recommand_app_list"
                 android:layout_width = "fill_parent"
                 android:layout_height = "fill_parent"
                 android:layout_below = "@id/recommands_list_view_header_divider"
                 android:fadingEdge = "none"
                 android:scrollbars = "none"
                 android:scrollingCache = "true" 
             </ ListView
    
    
    
<!--修复问题: 最后一条item所在的位置会闪烁 -->
    
             < ListView
                 android:id = "@+id/recommand_app_list"
                 android:layout_width = "fill_parent"
                 android:layout_height = "fill_parent"
                 android:layout_below = "@id/recommands_list_view_header_divider"
                 android:background = "@drawable/ic_content_bg_repeat"
                 android:divider = "@drawable/ic_list_divider_repeat"
                 android:dividerHeight = "1dp"
                 android:fadingEdge = "none"
                 android:persistentDrawingCache = "none"
                 android:scrollbars = "none"
                 android:scrollingCache = "false"
                 android:smoothScrollbar = "true" 
             </ ListView >

ListView是一个经常要用到的android控件,现总结遇到过的一些美化的小细节。

1、listview在拖动的时候背景图片消失变成黑色背景,等到拖动完毕我们自己的背景图片才显示出来

解决:在XML中加入

android:scrollingCache=”false” 或 android:cacheColorHint=”#00000000″

2、listview的上边和下边有黑色的阴影

解决: android:fadingEdge=”none”

3、修改listview的Item默认选择时的黄色背景

解决:在java文件中使用listview.setSelector()方法,或使用如下代码

1
android:listSelector= "#00000000"//这样写是透明的,也可加入Drawable图片

4、lsitview的每一项之间需要设置一个图片做为间隔

解决: android:divider=”@drawable/list_driver”


http://blog.csdn.net/liuhanhan512/article/details/7225989


ListView是Android中常用的控件,它可以展示一列数据,并且支持滑动、点击等交互操作。使用ListView需要自定义Adapter来管理数据和界面的显示。 以下是一个简单的ListView使用示例: 1. 定义ListView布局文件,例如listview_layout.xml: ``` <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 定义ListView的每一个item布局文件,例如list_item_layout.xml: ``` <TextView android:id="@+id/item_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" android:padding="16dp" /> ``` 3. 定义Adapter,例如MyAdapter.java: ``` public class MyAdapter extends BaseAdapter { private List<String> mDataList; public MyAdapter(List<String> dataList) { mDataList = dataList; } @Override public int getCount() { return mDataList.size(); } @Override public Object getItem(int position) { return mDataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_layout, parent, false); holder = new ViewHolder(); holder.text = convertView.findViewById(R.id.item_text); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } String data = mDataList.get(position); holder.text.setText(data); return convertView; } private static class ViewHolder { TextView text; } } ``` 4. 在Activity中使用ListView: ``` public class MainActivity extends AppCompatActivity { private ListView mListView; private MyAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = findViewById(R.id.list_view); List<String> dataList = new ArrayList<>(); for (int i = 0; i < 20; i++) { dataList.add("Item " + i); } mAdapter = new MyAdapter(dataList); mListView.setAdapter(mAdapter); } } ``` 这样就完成了一个简单的ListView展示。当数据量较大时,可以使用RecyclerView来优化性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值