android开发之Listview的使用技巧

ListView使用技巧精讲
本文详细介绍了ListView组件的多种实用技巧,包括修改滑动条样式、ViewHolder模式的应用、getCount与getChildCount的区别、OnScrollListener参数详解、去除各种默认样式及滚动到指定位置的方法。

Listview的使用技巧总结


1.修改ListView默认滑动条的样式非常简单,只需要添加一个xml属性即可:

<span style="font-family:Courier New;font-size:12px;"><span style="font-size:14px;">android:scrollbarThumbVertical="@drawable/scroll_vertical_thumb"</span></span>

2.ViewHolder的作用

就是一个持有者的类,他里面一般没有方法,只有属性,作用就是一个临时的储存器,把你getView方法中每次返回的View存起来,可以下次再用。

这样做的好处就是不必每次都到布局文件中去拿到你的View,提高了效率,一般在adapter中使用

3.ListView.getCount()与ListView.getChildCount()的区别

ListView.getCount()方法;实际上是AdapterView.getCount(),返回的是其Adapter.getCount()返回的值.也就是”所包含的Item总个数”.

ListView.getChildCount();实际上是ViewGroup.getChildCount(),返回的是显示层面上的”所包含的子View个数”.

是当item少不需要滑动时,两者相同。当item多,需要滑动时,ListView.getCount()多于ListView.getChildCount()

4.ListView.setOnScrollListener()参数详解

listView.setOnScrollListener(new OnScrollListener() {
  @Override
  public void onScrollStateChanged(AbsListView view, int scrollState) {

  }
  @Override
  public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    /**
            firstVisibleItem表示在现时屏幕第一个ListItem(部分显示的ListItem也算)在整个ListView的位置(下标从0开始)
        **/
    Log.i("firstVisibleItem", String.valueOf(firstVisibleItem));
    
        /**
            visibleItemCount表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数
        **/
    Log.i("visibleItemCount", String.valueOf(visibleItemCount));
  
        /**
            totalItemCount表示ListView的ListItem总数
        **/
    Log.i("totalItemCount", String.valueOf(totalItemCount));

    /**
            listView.getFirstVisiblePosition()表示在现时屏幕第一个ListItem(第一个ListItem部分显示也算)在整个ListView的位置(下标从0开始)
        **/
    Log.i("firstPosition", String.valueOf(listView.getFirstVisiblePosition()));
  
        /**
            listView.getLastVisiblePosition()表示在现时屏幕最后一个ListItem(最后ListItem要完全显示出来才算)在整个ListView的位置(下标从0开始)
        **/
    Log.i("lasPosition", String.valueOf(listView.getLastVisiblePosition()));
  }
});
转载:http://blog.youkuaiyun.com/zanelove/article/details/43735085


5.ListView 去除边缘阴影、选中色、拖动、底部上拉、顶部下拉背景色等 

去除下滑到底部,上拉时出现的蓝色区域 
android:overScrollMode="never" 

去除ListView滑到顶部和底部时边缘的黑色阴影: 
android:fadingEdge="none" 
  
去除拖动时默认的黑色背景: 
android:cacheColorHint="#00000000" 
  
去除选中时的黄色底色: 
android:listSelector="#00000000" 
  
去除行与行之间的黑线:   
list.setDivider(null); 

ListView刷新后自动滚到最底部: 
list.setSelection(msgList.getAdapter().getCount()-1);


6.listview滚到指定位置

    private void setListViewPos(int pos) {
        if (android.os.Build.VERSION.SDK_INT >= 8) {
            mListView.smoothScrollToPosition(pos);
        } else {
            mListView.setSelection(pos);
        }
    }

如果是要置回到头部,就传入0;如果是滚动到最后一个,就传入mListView.getCount() - 1。补一点,记得设置mListView.setSelected(true)


转载:http://blog.youkuaiyun.com/xyz_fly/article/details/9246709


内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值