私は可能な解決策をたくさん試しましたが、有用ではありませんでした。私は前のActivity
を使って前のページに戻ろうとしていますが、putExtra()
でその位置を渡して、前のアクティビティのインテントから位置を取得してを使用しようとしましたが、アクティビティが再作成され、私はまたonSavedInstanceState()
とonRestoreInstanceState
を使用しようとしましたが、私は同じ結果を得ました、いずれか私にアイデアを与えることができますか?前もって感謝します。2番目のアクティビティからインテントを使用して最初のアクティティに戻るときにRecyclerViewの最後のアイテムの位置を保存する方法
また、以下の方法が機能していないのはなぜですか?
@Override
protected void onPause() {
super.onPause();
lastFirstVisiblePosition = ((LinearLayoutManager)
recyclerView.getLayoutManager()).findLastVisibleItemPosition();
Log.d("bePos", String.valueOf(lastFirstVisiblePosition));
}
@Override
protected void onResume() {
super.onResume();
Log.d("lastPos", String.valueOf(lastFirstVisiblePosition));
recyclerView.scrollToPosition(lastFirstVisiblePosition);
}
私は最後の位置を保存する問題を解決しますが、私はページネーションを使用していますので、後で私はRecyclerView
のその位置にスクロールすることができないことを発見し アップデートは、RecyclerView
がちょうどにスクロールすることはできませんアイテムはまだロードされていないので、そのような問題を解決する方法は?
あなたのロジックに欠陥があり、あなたはアクティビティを開始する意図を送信しています。単に既存のアクティビティをフォアグラウンドに持ってくるのではなく、正しい方法は 'onBackPressed()'を使用しています。すでに実行中のアクティビティのインテントをスタックに送信することを主張する場合は、マニフェストを使用します。 'onNewIntent'が呼び出されることを覚えておいてください。私は' onNewIntent'、 'onPause'、' onResume'と信じていますが、私には引用しません。 –
今は主な問題は位置を保存することではありませんが、RecyclerViewはアクティビティ@MarkKeen –
を再作成した後、その位置にスクロールします。アクティビティを再作成すると、デフォルトの初期化されたインスタンス変数値のみを持つ別のインスタンスが表示されます。 –