如何获取ListView中 一条Item的 View? 急急急.......

qq_36465113 2016-10-26 10:00:36
ListViewiew.getChildAt(childIndex) 这个方法 只能显示 可见部分的Item的View 我的 Item条目 都超过了 一页,也就是说 由于屏幕小的原因 有更多的Item在下面看不到 ,这些看不到的Item 就获取不了View。。
网上有人说 用此方法能获取到看不见的Item:
public View getViewByPosition(int pos, ListView lt2) {
final int firstListItemPosition = lt2.getFirstVisiblePosition();
final int lastListItemPosition = firstListItemPosition
+ lt2.getChildCount() - 1;
if (pos < firstListItemPosition || pos > lastListItemPosition) {
return lt2.getAdapter().getView(pos, null, lt2);
} else {
final int childIndex = pos - firstListItemPosition;
return lt2.getChildAt(childIndex);
}
}


但是此方法用过之后 也不行,一点效果也没有。。。。

求大神 帮帮我吧!
...全文
911 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
whb19891011 2018-01-19
  • 打赏
  • 举报
回复
都看不见了还怎么获取?要获取那也是重新根据缓存数据和缓存convertView来new出那个看不见的view,但这跟那个看不见的view滑到能看见了的时候不是同一个view,我猜你是想对看不见的view做操作是吧,应该在adapter里埋值,由adapter来控制那个你想操作的view的绘制
五柳--先生 2016-10-27
  • 打赏
  • 举报
回复
直接用 id 啊 findviewbyid不是就获取到了
落雨尘封 2016-10-26
  • 打赏
  • 举报
回复
引用 3 楼 qq_36465113 的回复:
我是想在 ListView外的 一个按钮的点击事件里写:当这个按钮点击之后,改变Listview里所有Item的数据.......
直接改变adapter中的数据,显示listview的时候再加载就好了 不在可见范围内的view都是被复用了,不可能所有item都持有一个view,会oom的
qq_36465113 2016-10-26
  • 打赏
  • 举报
回复
我是想在 ListView外的 一个按钮的点击事件里写:当这个按钮点击之后,改变Listview里所有Item的数据.......
qq840727854 2016-10-26
  • 打赏
  • 举报
回复
listview item都是复用的 你想获取 看不见的 item 第12个item 其实有可能就是你目前的 第2个item view 所以 你没必要 去获取他,改变他什么,因为他都没有出现. 你可以 试着改变下数据, 当他 显示的 时候 会调用 getView 到时候 自然就出现 你希望他出现的样子
疯狂的兔子ccc 2016-10-26
  • 打赏
  • 举报
回复
提个建议,你想获取到view是要改变他还是要取得他的数据呢? 想改变它等他显示出来再改变也来得及 想获取数据也不需要得到view
_东风笑西风 2016-10-26
  • 打赏
  • 举报
回复
在listview布局不变的情况下,如果只是改变数据,那一般来说,只考虑改变它的数据源, 而数据源一种是服务端获取的数据源,另一种是本地缓存的数据源。

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧