android - RecyclerView根据Position设置Item的子视图是否显示?
怪我咯
怪我咯 2017-04-17 17:35:20
[Android讨论组]

我在Adapter里面判断Position然后设置控件是否显示会显示错乱,请问有什么办法可以根据Position来设置控件是否显示。比如:我想在头和尾都显示一张图片,其他则不显示。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
PHPz

XXX.setVisibility(position == XXX ? View.VISIBLE : View.GONE);
要带else的执行,不然会错乱,因为ListView和RecyclerView 都有复用机制,就是你用过的item 滑出屏幕一定距离后会被复用来显示新的数据,如果有某项不重新设置数据,会导致item 的数据是上一次的数据,造成数据错乱。就是你设置了隐藏,就要设置显示

伊谢尔伦

没大看懂你的问题。。。
我觉得你可以重写getItemViewType()方法和getItemCount()方法,在onBindViewHolder中控制。当position是0和最后时显示图片,其他情况显示正确内容
这需要写两个viewHolder,一个是正常的展示数据的,另一个里面只有一个ImageView

PHPz

需要先在OnCreatViewHolder时候设置viewType 并加载布局
然后再根据position判断type 设置 数据加载 和 展示。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号