フラグメントにRecyclerView
があり、最初は非表示です。ユーザーがボタンをクリックすると、RecyclerView
の可視性がtrueに設定され、ArrayList
にあるデータが表示されます。フラグメントを復元するときにRecyclerViewが空です。
別のフラグメントを上に移動すると問題が発生します(前のフラグメントをbackStackにRecyclerView
で追加します)。新しいフラグメントから戻ると、前のフラグメント(RecyclerView
のもの)が表示され、 onCreateView()
私は、recyclerViewに使用しているデータセットの値を記録しますが、すべてがありますが、recyclerViewは空です(フッター項目のみが表示されます)。私たちはRecyclerView
とNextFragment
backstackに到達したスキーマがある葉断片とRvFragment
フラグメントを呼び出した場合
:
@Nullable
@Override
public View onCreateView(final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_photo_comments, container, false);
ButterKnife.bind(this, view);
Timber.i("onCreateView data.size == %d", commentArrayList.size());
setToolbarTitle();
Picasso.with(getActivity())
.load(photo)
.placeholder(R.drawable.ic_timeline_image_placeholder)
.centerCrop()
.fit()
.into(ivPhoto);
if (hasCommentsVisible) {
Timber.i("comments are visible!! and dataSize == %d", commentArrayList.size());
llFlagsCommentsContainer.setVisibility(View.GONE);
rvCommentsList.setVisibility(View.VISIBLE);
}
tvComments.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
hasCommentsVisible = true;
llFlagsCommentsContainer.setVisibility(View.GONE);
rvCommentsList.setVisibility(View.VISIBLE);
}
});
initRecyclerView();
return view;
}
:ここ
(back pressed)
RvFragment ----------> NextFragment ------------> RvFragment
とはonCreateView()
からのコードです上記のコードのログステートメントで、データが存在することを確認できます。ありがとう!
いつ、どのように 'commentArrayListを移入します:
また、完全にあなたがそれに戻ってくるたびに、あなたのフラグメントを再作成するために、あなたは単にそれを完全に削除することができます'? –
'onCreate()'の中で 'Retrofit'呼び出しを開始し、メソッド内のデータを受け取ります:' @Override public void showData(Comment comment){ commentArrayList.add(comment); adapter.addItem(コメント); adapter.notifyDataSetChanged(); } ' – Mes