У меня очень странная проблема.У меня есть 2 обзора переработчиков (просмотр переработчиков № 1 с горизонтальной прокруткой и просмотр повторов № 2).Когда я вызывал notifyDataSetChanged()
из адаптера для recyclerview # 2, он сбрасывает прокрутку в recyclerview # 1.
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView android:id="@+id/recyclerview1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="horizontal" />
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp">
<TextView android:text="Selected: "
style="@style/ProdGroupLabel" />
<TextView android:text="@{prod.name}"
android:maxEms="12"
style="@style/ProdGroupLabel" />
<Button android:id="@+id/buttonedit"
android:text="Edit"
android:visibility="@{menu.hasOptions ? View.VISIBLE : View.INVISIBLE}"
style="@style/ProdGroupButtonEdit"/>
</LinearLayout>
<android.support.v7.widget.RecyclerView android:id="@+id/recyclerview2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="@{menu.hasOptions ? View.VISIBLE : View.GONE}" />
</LinearLayout>
Так я инициализировал мой адаптер
recyclerview1.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false));
recyclerview1.addItemDecoration(new SpaceItemDecoration(context, R.dimen.horz_spacing));
recyclerview1.setAdapter(productRecyclerAdapter);
recyclerview1.setHasFixedSize(true);
recyclerview2.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
recyclerview2.setAdapter(productOptionRecyclerAdapter);
recyclerview2.setHasFixedSize(true);
Когда пользователь выбираетпродукт обновит позиции productOptionRecyclerAdapter
, чтобы отразить доступные опции для этого продукта.В productOptionRecyclerAdapter
, когда источник изменился, я вызвал notifyDataSetChanged()
.
Проблема в том, что каждый раз, когда notifyDataSetChanged()
вызывается в productOptionRecyclerAdapter
, он прокручивает recyclerview1
в положение (0,0),Но recyclerview1
не имеет ничего общего с productOptionRecyclerAdapter
.(И да, если я закомментировал notifyDataSetChanged()
в productOptionRecyclerAdapter
, тогда полоса прокрутки не будет сброшена.)
Есть идеи почему?