Recyclerview,做时间轴设置position==0位置上面的竖线不显示,结果效果是position==9也不显示

ChestnutCsdn 2017-09-18 10:49:40
Adapter中的代码:
@Override
public void onBindViewHolder(FlowLogAdapter.ViewHolder holder, final int position) {
if (holder != null) {
FlowLogBean flow = flowLogBeanList.get(position);
holder.tvOperationType.setBackgroundResource(R.drawable.bg_green_flow_log);
//第一个item上面的竖线不显示
if (position == TYPE_TOP) {
holder.tvTopLine.setVisibility(View.INVISIBLE);
Log.i("position:",position);
}

可是界面效果是position==0和position==9的item上面的竖线都没有显示,如下图所示:position==9左侧时间轴上面的竖线也没有显示,导致中间空了一小段。。


打印的Log显示,只有“position:0”,百思不得其解。。
...全文
204 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Demons_by 2017-09-18
  • 打赏
  • 举报
回复
建议楼主在if (position == TYPE_TOP) {...}后面加一个else{ holder.tvTopLine.setVisibility(View.VISIBLE); }因为recyclerView是循环利用ViewHolder的。你的第九个position应该是复用了你的topposition的ViewHolder,而在你的代码中,并没有进行如果不是TYPE_TOP则会如何的判断,故这里会显示不出竖线,加上应该就没问题啦
ChestnutCsdn 2017-09-18
  • 打赏
  • 举报
回复
引用 1 楼 Demons_by 的回复:
建议楼主在if (position == TYPE_TOP) {...}后面加一个else{ holder.tvTopLine.setVisibility(View.VISIBLE); }因为recyclerView是循环利用ViewHolder的。你的第九个position应该是复用了你的topposition的ViewHolder,而在你的代码中,并没有进行如果不是TYPE_TOP则会如何的判断,故这里会显示不出竖线,加上应该就没问题啦
加上以后显示正常了(^-^)V Thanks♪(・ω・)ノ

80,351

社区成员

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

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