3

時々作成されるフラグメントの複雑な ViewGroup があります。一度に表示できるインスタンス フラグメントは 1 つだけです。

膨張したビューを何らかの形で保存し、フラグメントが再度作成されたときにそれを再利用できるかどうか疑問に思っていました。

明らかに、ビューのプロパティを変更する必要がありますが、少なくともビューを再び膨張させる必要はありません。

ビュー要素を静的要素として保存し、存在するかどうかを確認し、存在する場合は使用しようとしました。

ただし、 View 要素にはいくつかのフラグメント固有のプロパティがあり、別の参照 ID を持つフラグメントで使用すると失敗すると思います-まあ..失敗しました。

膨張したビューをキャッシュして再利用しようとした人はいますか?

4

1 に答える 1

0

異なるフラグメント間でビューを再利用するのは非常に危険に思えます (ただし、同じフラグメント内でそれらを再利用するのは安全です)。

アクティビティが再作成された場合など、コンテキストが変化した場合はどうなりますか? getContext()無効になり、予期しない結果につながる可能性があるため、ビューが呼び出されないようにしてアクティビティコンテキストを使用しようとする必要があると思います。

できることは、レイアウトを最適化したことを確認すること (ネストされたウェイトを回避するなどRelativeLayouts、可能な場合)、またはカスタム ビューを使用してレイアウトを簡素化することです。

于 2013-09-03T17:10:40.330 に答える