2016-12-01 27 views
1

RecyclerViewのアイテムがあるので、私はposition 8アイテムをクリックしてNextActivityに行きます。戻るボタンを押すと戻ってこないpostion 8にはposition 0になります。RecyclerViewアイテムトラック後アイテムNextActivityにクリック

RecyclerViewのトラックをアイテムにすると、NextActivityに移動しようとすると、戻るボタンを押すと、0をクリックしなかったアイテムに戻ります。

これを知っている人は助けてください。

+0

に戻っ理由です、それが再びデータをロードし、実行します。 – Tasneem

答えて

0

役立つ、問題はあなたのデータをロードするためにOnCreate()を使用しようと、あなたのデータ項目をロードするためにOnStart()を使用しています。それから、あなたはその問題を取り除くことができます。あなたがOnStart()を持って活動に戻ってくるたび

OnStart()はRecyclerViewはアイテム0あなたのコードを共有してください

+0

ありがとう、それはとてもトリッキーですが、ついにそれを得ました:) –

1

RecyclerViewアクティビティのonPauseメソッドでは、完全に表示可能なアイテムの位置をリストに保存します。その後、その特定の位置にスクロールするonResumeメソッドのwrite文を実行します。以下

リンクは、これはとても簡単です、あなた https://developer.android.com/reference/android/support/v7/widget/LinearLayoutManager.html#findLastCompletelyVisibleItemPosition() https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html#scrollToPosition(int)

+0

シンプルなコードサンプルを表示してください。thamksの代わりに実装する –

+0

このリンクの最初の答えを見てください。http://stackoverflow.com/questions/36568168/how-to-save-scroll-position-of-recyclerview- in-android –

+0

私はこれを挿入しました。しかし、RecyclerViewをクリックすると、アプリケーションがクラッシュします。 '@Override protected void onPause(){ super.onPause(); long currentVisiblePosition = 0; currentVisiblePosition =((LinearLayoutManager)mRecyclerview.getLayoutManager())。findFirstCompletelyVisibleItemPosition(); } @Override protected void onResume(){ int currentVisiblePosition = 0; super.onResume(); ((LinearLayoutManager)mRecyclerview.getLayoutManager())。scrollToPosition(currentVisiblePosition); currentVisiblePosition = 0; } ' –

関連する問題