25

メソッドはFragment.setUserVisibleHint()システムによって呼び出されますか、それとも
手動で呼び出しますか?

4

3 に答える 3

41

ソースを見ると、このシステムは主にページャーに挿入されたフラグメントを対象としているようです。あなた(またはたとえばフラグメントページャーの実装)は、それをヒント(Fragmentソースのコメントが言うように「アプリによって提供されるヒント」)として設定する必要があります。表示され、表示されているフラグメントの読み込みに優先順位を付けます (ページャーに使用する場合の典型的な必要性)。

ただし、FragmentPagerAdapterはこれを利用し、そのフラグメントを適切に呼び出すことに注意してください。そのため、フラグメントがユーザーに表示されるかどうかを知るためにsetUserVisibleHint()オーバーライドするなどのアドバイスをする人がいると思いますsetUserVisibleHint()(したがって、これは次の場合にのみ機能します)フラグメントはFragmentPagerAdapter、たとえば通常のアクティビティ レイアウトに配置されたときではなく、 内にあります)。

したがって、質問に明確に答えるために、手動で呼び出すだけでなく、手動でFragmentPagerAdapter呼び出すこともできます。

于 2013-12-18T11:32:56.753 に答える
0

ドキュメントから:

このフラグメントの UI が現在ユーザーに表示されているかどうかについて、システムにヒントを設定します。このヒントはデフォルトで true に設定され、フラグメント インスタンスの状態の保存と復元の間で永続的です。

アプリはこれを false に設定して、フラグメントの UI がスクロールされて表示されないか、ユーザーに直接表示されないことを示すことができます。これは、フラグメントのライフサイクルの更新やローダーの順序付け動作などの操作に優先順位を付けるためにシステムで使用される場合があります。

パラメータ isVisibleToUser このフラグメントの UI が現在ユーザーに表示されている場合は true (デフォルト)、表示されていない場合は false。

デフォルトでTrueに設定されているように聞こえますが、必要に応じてFalseに設定できます。

ドキュメンテーション

于 2013-02-06T18:10:28.930 に答える