recyclerViewのlist_item_layoutをトグルするボタンが必要です。最良の方法RecyclerView変更アイテムすべてのアイテムのレイアウト?
私はさまざまなサンプルを見て、これはhttps://github.com/gjiazhe/LayoutSwitchです(ただし、gridlayoutmanagerを扱っています)。リストレイアウトマネージャは必要ですが、レイアウトファイルは異なります。
私のケースでは、onScrollはもっと多くのアイテムをロードし、そのコードのようにアダプタのパラメータ変数とnotifychangeだけを変更すると、私は混在します。一部のアイテムで古いレイアウトが使用されています。
アダプターを再作成しましたが、これを解決する最善の方法ではないと思います。
ここに私の最終的なコードスニペット
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_no_image_view) {
int lastFirstVisiblePosition = ((LinearLayoutManager)mRecyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPosition();
mAdapter = new ItemsAdapter(getContext(), mPostsList, this);
mAdapter.setLayoutType(ItemsAdapter.TYPE_LIST);
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.getLayoutManager().scrollToPosition(lastFirstVisiblePosition);
return true;
}
return super.onOptionsItemSelected(item);
}
があり、それを作るための良い方法ですか?
UPDATE:間違いで、ちょうど@Override 公共int型getItemViewType(int型の位置)をオーバーライドし、必要なビュータイプ
を返し、それが魅力