У меня есть RecyclerView во фрагменте, и элементы можно выбрать. Я решил, что с созданием переменной int focusedItem = 0;
в RvAdapter и holder.itemView.setSelected(focusedItem == position);
в методе onBindViewHolder. И это метод OnClick из пункта:Android - RecyclerView: добавьте новый элемент и выберите его
holder.itemView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
notifyItemChanged(focusedItem);
focusedItem = position;
notifyItemChanged(focusedItem);
}
});
И в файле XML для элемента списка я использовал селектор в качестве фона, который изменяет цвет фона выбранного элемента. Это работает нормально, но я хочу добавить элементы в представление recycler и после добавления элемента он не работает так хорошо.
Это, как я добавить элемент в с.в. (в классе фрагмент):
entries.add(0, new ...);
rvAdapter.notifyItemInserted(0);
recyclerView.scrollToPosition(0);
Так что я добавить элемент в ArrayList на первой позиции. Затем я уведомляю адаптер, что новый элемент в первой позиции вставлен, а затем я перейду к этому новому элементу. Теперь я хочу, чтобы новый элемент был автоматически выбран. Есть ли способ сделать это? Моя идея состояла в том, чтобы установить focusedItem = 0
, но я не знаю, как отредактировать это значение в классе фрагмента. Или есть что-то вроде onItemInserted, где я могу установить эту переменную в 0?
Yeap, вы правы, забыли часть отмены выделения :) –