Это то, что я хочу:
Как изображение выше, я хочу нарисовать осевую линию на RecycleView
, затем получить элемент центра при прокрутке (а также перемещение влево или вправо)
Вот моя попытка нарисовать горизонтальный RecycleView
:
HorizontalAdapter adapter = new HorizontalAdapter(data);
LinearLayoutManager layoutManager
= new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
recycleView.setLayoutManager(layoutManager);
recycleView.setAdapter(adapter);
Есть ли способ узнать, какой элемент перемещен в центр RecycleView
? И как я могу прокручивать RecycleView
налево или вправо только на одну позицию?
Обновление. Я попытался использовать прослушиватель прокрутки, чтобы получить среднюю позицию, но он не работает как аспект.
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int firstPos = layoutManager.findFirstVisibleItemPosition();
int lastPos = layoutManager.findLastVisibleItemPosition();
int middle = Math.abs(lastPos - firstPos) / 2 + firstPos;
int selectedPos = -1;
for (int i = 0; i < adapter.getItemCount(); i++) {
if (i == middle) {
adapter.getItem(i).setSelected(true);
selectedPos = i;
} else {
adapter.getItem(i).setSelected(false);
}
}
adapter.notifyDataSetChanged();
}
И получите результат:
Я хочу изменить элемент selecte (сделать текст белым цветом), когда он находится на синем Rect