1

で使用するFragmentsにがいくつかあります。私はその中にのみとを使用しています。アダプターでそのリストを置き換えたい場合は、別のリストを別のフラグメントでロードし、アダプターを呼び出してビューページャーに再度設定し、それを実現します。それはうまくいっています。List CollectionViewpagerFragmentStatePagerAdaptergetItem(){return list.get(index;}getCount(){return list.size()}notifyDataSetChanged()

しかし、このフラグメントセットの変更を行うと、以前のフラグメントはonDestroy()PagerAdapter を介した呼び出しで破棄されます。onDestroy 呼び出しを防ぐことができるかどうか知りたいですか? またはonSavedInstanceState()、以前のフラグメントとその状態を再度ロードするために使用する必要がありますか?

アダプターの変更により失われたフラグメントの状態を復元するために、いくつかの異なる方法を検索しています。誰かがこれについて何か知っているなら、いくつかの考えを共有するといいでしょう. 必要に応じてコードを提供できます。

たぶん良い情報: PagerAdapter を使用してフラグメントをインスタンス化することはありません。リストをアダプタにロードする前にこれを行います。

4

2 に答える 2

5

onDestroy 呼び出しを防ぐことができるかどうか知りたいですか?

使用の完全かつ完全なポイントFragmentStatePagerAdapter、Android が使用されていないフラグメントを破棄できるようにすることです。FragmentPagerAdapter代わりに使用する必要があります。

于 2012-10-12T11:32:50.740 に答える
3

先日、同じ問題を提案しました。

だから私は別の解決策を見つけました。

Adapter クラスで destroyItem(ViewGroup container, int position, Object object) をオーバーライドします。

そして、super.destroyItemが機能しないように変更しました..

解決策がより良い解決策であるかどうかはわかりませんが、私にとっては間違いなく役に立ちます。

于 2015-01-11T02:26:10.930 に答える