【发布时间】:2017-01-13 23:58:21
【问题描述】:
我在片段中有一个 RecyclerView 并且项目是可选择的。我通过在 RvAdapter 中创建变量 int focusedItem = 0; 和在 onBindViewHolder 方法中创建变量 holder.itemView.setSelected(focusedItem == position); 解决了这个问题。这是一个item的onClick方法:
holder.itemView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
notifyItemChanged(focusedItem);
focusedItem = position;
notifyItemChanged(focusedItem);
}
});
在列表项的 XML 文件中,我使用了一个选择器作为背景,它改变了所选项目的背景颜色。这工作正常,但我想将项目添加到回收站视图中,添加项目后它不再那么好用了。
这是我向 rv 添加项目的方式(在片段类中):
entries.add(0, new ...);
rvAdapter.notifyItemInserted(0);
recyclerView.scrollToPosition(0);
所以我在 ArrayList 的第一个位置添加了一个项目。然后我通知适配器,在第一个位置插入了一个新项目,然后我滚动到那个新项目。现在我希望自动选择新项目。有没有办法做到这一点?我的想法是设置focusedItem = 0,但我不知道如何在片段类中编辑这个值。还是有类似 onItemInserted 的东西,我可以将这个变量设置为 0?
【问题讨论】:
标签: android android-fragments android-recyclerview