扫码关注官方订阅号
我在Adapter里面判断Position然后设置控件是否显示会显示错乱,请问有什么办法可以根据Position来设置控件是否显示。比如:我想在头和尾都显示一张图片,其他则不显示。
走同样的路,发现不同的人生
XXX.setVisibility(position == XXX ? View.VISIBLE : View.GONE);要带else的执行,不然会错乱,因为ListView和RecyclerView 都有复用机制,就是你用过的item 滑出屏幕一定距离后会被复用来显示新的数据,如果有某项不重新设置数据,会导致item 的数据是上一次的数据,造成数据错乱。就是你设置了隐藏,就要设置显示
没大看懂你的问题。。。我觉得你可以重写getItemViewType()方法和getItemCount()方法,在onBindViewHolder中控制。当position是0和最后时显示图片,其他情况显示正确内容这需要写两个viewHolder,一个是正常的展示数据的,另一个里面只有一个ImageView
需要先在OnCreatViewHolder时候设置viewType 并加载布局然后再根据position判断type 设置 数据加载 和 展示。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
XXX.setVisibility(position == XXX ? View.VISIBLE : View.GONE);
要带else的执行,不然会错乱,因为ListView和RecyclerView 都有复用机制,就是你用过的item 滑出屏幕一定距离后会被复用来显示新的数据,如果有某项不重新设置数据,会导致item 的数据是上一次的数据,造成数据错乱。就是你设置了隐藏,就要设置显示
没大看懂你的问题。。。
我觉得你可以重写getItemViewType()方法和getItemCount()方法,在onBindViewHolder中控制。当position是0和最后时显示图片,其他情况显示正确内容
这需要写两个viewHolder,一个是正常的展示数据的,另一个里面只有一个ImageView
需要先在OnCreatViewHolder时候设置viewType 并加载布局
然后再根据position判断type 设置 数据加载 和 展示。