正确处理listview的position】的更多相关文章

当ListView包含有HeaderView或FooterView时,传入getView或者onItemClick的position是怎样的,这是个值得探讨的问题 先列出错误的用法 定义: private MyAdapter mAdapter; /**  * 包含数据的list  */ private List<String> mDataList1 = new ArrayList<String>(); 错误用法一: @Override public void onItemClick…
选择同事列表页面,在Adapter里设置复选框背景时调用了notifyDataSetChanged(),阻碍了UI线程,因此在设置ListView.setSelection(position)时不起作用. 有时调用adapter.notifyDataSetChanged时也没有刷新页面,可以使用ListView的post方法刷新.…
在使用ListView添加如下代码时 listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View arg1, int position, long id) { //此时有人遇到position不是从0开始 } }); 对于上面问题,是因为ListView添加了Head导致的,如果Head添加了一个View从1开始…
我们在使用ListView的时候,一般都会为ListView添加一个响应事件android.widget.AdapterView.OnItemClickListener.本文主要在于对OnItemClickListener的position和id参数做详细的解释,我相信有些人在这上面走了些弯路. 先来看一下官方的文档 position The position of the view in the adapter. id The row id of the item that was click…
如果一个ListView太长,有时我们希望ListView在从其他界面返回的时候能够恢复上次查看的位置,这就涉及到ListView的定位问题: 解决的办法如下: 1 2 3 4 5 6 7 // 保存当前第一个可见的item的索引和偏移量 int index = mList.getFirstVisiblePosition(); View v = mList.getChildAt(0); int top = (v == null) ? 0 : v.getTop(); // ... //根据上次保存…
需求场景: 一个ListView页面,滑动阅读到某一位置,然后退出页面,下次再进入页面的时候,想要直接滑动到上次阅读的位置. 方案1: 页面退出的时候,ListView.getFirstVisiblePosition()来获取当前可见的第一个Item的position并记录,下次再进入页面的时候通过ListView.setSelection(int position)把ListView直接滑动到记忆的position. 此方案记忆的ListView的位置不够精准,因为position指定的是Li…
最近做项目中用到ScrollView和ListView一起使用的问题,显示的时候ListView不能完全正确的显示,查了好多资料终于成功解决:   首先,ListView不能直接用,要自定义一个,然后重写onMeasure()方法: 复制代码代码如下: @Override  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {      int expandSpec = MeasureSpec.makeMe…
正确的方法 gvFlow.post(new Runnable() { @Override public void run() { gvFlow.performItemClick(gvFlow.getChildAt(1), 1, gvFlow.getItemIdAtPosition(1)); } }); 以上触发的点击事件,在 clickListener里面可以获取到正确的view ,并对view进行状态改变.(这里放到post里面是为了 传过去的view不是nul,因为performItem是异…
1,listview加载性能优化ViewHolder 转自: http://blog.csdn.net/jacman/article/details/7087995 在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候就需要按需填充并重新使用view来减少对象的创建. ListView加载数据都是在public Vie…
表明转载自http://blog.csdn.net/iispring/article/details/50967445 在自己定义Adapter时,我们经常会重写Adapter的getView方法,该方法的签名例如以下所看到的: <code class="hljs cs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-fami…