У меня есть утилита просмотра с PagerSnapHelper для прокрутки страницы одна за другой.Здесь высота и ширина моего вида равна match_parent. Проблема заключается в том, что когда я прокручиваю страницу в программе повторного просмотра, позиция выглядит как 0 и 1 в позиции элемента 0, а когда я прокручиваю страницу, она показывает позиции 1 и 2 в позиции элемента 1. Просмотрвыглядит идеально, но из-за этого короля позиции, мое событие просмотра клика не работает.Я хочу только одну позицию за один раз, когда я переворачиваюсь. Например, когда страница загружается в первый раз, она показывает позицию 0, затем, когда я прокручиваю страницу, она должна показывать 1, снова прокручивать, позиция должна показывать 2 и так далее.Еще одна вещь, которую я заметил с PagerSnapHelper, это то, что когда я прокручиваю в обратном порядке справа налево, позиция отображается случайным образом, а не отображается в потоке, как 3,2,1. Как я могу это исправить?в действии.
RecyclerView.LayoutManager mLayoutManager = new
LinearLayoutManager(ReportActivity.this, LinearLayoutManager.HORIZONTAL,
false);
PagerSnapHelper pagerSnapHelper = new SnapHelperOneByOne();
recyclerViewreport.setLayoutManager(mLayoutManager);
pagerSnapHelper.attachToRecyclerView(recyclerViewreport);
recyclerviewReportAdapter = new RecyclerviewReportAdapter(reportList,
ReportActivity.this, recyclerViewreport, linearSnapHelper,
onTouchListener, isEnabledPagePadding);
recyclerViewreport.setAdapter(recyclerviewReportAdapter);
recyclerviewReportAdapter.notifyDataSetChanged();
// вот мое событие click дляlativeLayout в классе адаптера.
holder.relativeLayoutForehead.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View view) {
ivFace.setForheadZoom();
if (!isVisible) {
holder.relativeLayoutAcneDesc.setVisibility(View.VISIBLE);
holder.ivTriangleForhead.setVisibility(View.VISIBLE);
holder.ivTriangleCheek.setVisibility(View.GONE);
holder.ivTriangleChin.setVisibility(View.GONE);
holder.ivTriangleNose.setVisibility(View.GONE);
holder.tvAcneInfo.setText(forehead.getText());
isVisible = true;
} else {
holder.relativeLayoutAcneDesc.setVisibility(View.GONE);
holder.ivTriangleForhead.setVisibility(View.GONE);
holder.ivTriangleCheek.setVisibility(View.GONE);
holder.ivTriangleChin.setVisibility(View.GONE);
holder.ivTriangleNose.setVisibility(View.GONE);
isVisible = false;
}
}
});