ListView

ListView

不常注意细节

  • listview的分割线。并不是两个item中间有。而是一个item下面就有一个。最后一个item时,其下面也有分割线。

方法

void setSelection (int position) 设置当前选中项,即将第position项显示出来。
Sets the currently selected item. If in touch mode, the item will not be selected but it will still be positioned appropriately. If the specified selection position is less than 0, then the item at position 0 will be selected.

标题

标题

去除分割线

  1. 将分割线高度设置为0(部分系统上还会有分割线);
    android:dividerHeight=”0dip”
    android:listSelector=”@android:color/transparent”
  2. 将分割线设置为全透明;
    android:divider=”#00000000”
  3. 在Java中设置
    .setDividerHeight(0);
    lvMain.setDivider(null);

滑动时背景色
listView.setCacheColorHint(Color.TRANSPARENT);//让ListView滑动的时候条目背景色不会变成黑色

listView.setSelector(new ColorDrawable());//设置默认状态选择器为全透明,不传颜色就是没颜色(也就是条目被点击时,背景没颜色)

右侧滑动块
android:fastScrollEnabled=”true” 设置显示滑动块。默认,当页数小于4时是不显示的。

1,通过反射,更改滑动块样式。效率低
ListView超类AbsListView的一个成员mFastScroller对象的成员mThumbDrawable。这里mThumbDrawable是Drawable类型的。反射更改mThumbDrawable。

2,自定义android.R.attr.fastScrollThumbDrawable属性更改滑动块
mThumbDrawable是通过获取当前Activity主题的android.R.attr.fastScrollThumbDrawable属性赋值,的,自定义此属性值即可。

ExpandableListView

listview多级嵌套

性能优化

  1. ListView中item的布局至关重要,必须尽可能的减少使用的控件,布局嵌套;
  2. RelativeLayout是绝对的利器,通过它可以减少布局的层次;
  3. 巧用ViewHolder机制;
  4. 同时要尽可能的复用控件,这样可以减少ListView的内存使用,减少滑动时GC次数;
  5. ListView的背景色与cacheColorHint设置相同颜色,可以提高滑动时的渲染性能;
  6. getView方法中不能做复杂的逻辑计算,特别是数据库操作,否则会严重影响滑动时的性能。

滑动处理
在onScrollStateChanged()方法中,针对不同的状太做处理。

开发经验
当老项目,一item里有一个布局。后期把一个变为两个item时,使用(2n - 1)求得第一个的数据,第二个用+ 1即可,在一个item里获取两个数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值