- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
以下是我的 onBindViewHolder
的部分代码(在 MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>
内)
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// - get element from your dataset at this position
StatusItem item = mDataset.get(position);
//......
//Add content and timing to the textview
String content = item.getContent();
holder.mTextViewTime.setText(timing);
//Set the img
holder.imgViewIcon.setImageDrawable(item.getProfileDrawable());
//Set content image (for Instagram)
holder.mImageViewContentPic.setImageDrawable(item.getContentDrawable());
//HIDE THE VIEW Start
if(item.getContentDrawable() == null){
holder.mImageViewContentPic.setVisibility(View.GONE);
}
//HIDE THE VIEW End
}
部分HIDE THE VIEW
没有按预期工作。当我向下滚动时, View 正常工作。但是,当我开始向上滚动时,即重新访问以前的 View 时,应该是 VISIBLE
的 ImageViews变成 GONE
,虽然我检查了我的数据集并验证它没有被修改。尝试在 View 上调用其他方法也会产生不稳定的结果(数据集中的位置和项目不匹配)。
似乎 View 持有者没有绑定(bind)到 RecyclerView 内的特定位置。
如果我删除 HIDE THE VIEW
,代码将按预期工作部分。有什么方法可以解决这个问题并在我的案例中动态隐藏 View 吗?
注意:我使用了一些 AsyncTasks 来更新数据集并调用 notifyDataSetChanged()
,如果这是相关的。
最佳答案
###This is the solution to your problem:###
holder.mImageViewContentPic.setVisibility(View.VISIBLE);
if(item.getContentDrawable() == null){
holder.mImageViewContentPic.setVisibility(View.GONE);
}
关于android - RecyclerView.Adapter 中的 ViewHolder 不特定于位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26076522/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
正如您在 this travis.yml 中看到的那样文件,我的代码依赖于一些第三方库,我在构建项目之前将它们安装在远程系统上。 Travis 每次推送提交时都会下载并构建这些库,这可以避免吗?我的意
我是一名优秀的程序员,十分优秀!