2017-12-14 5 views
1

フラグメントが見えるようになったときの検出方法は、この質問を検索して多くの回答を得ました。可視になるとフラグメントを検出する真の答え

1。 setUserVisibleHint()を使用してください:このメソッドは常に呼び出されるわけではなく、自動的に呼び出されることはありません。たとえば、このコードを作成しました

@Override 
public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setUserVisibleHint(false); 
} 

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    if (isResumed()){ 
     if (isVisibleToUser){//fragment visible 
      load(); 
     }else{ 
      //content.listener.stop(); 
     } 
    } 
} 

このメソッドは、viewPagerの最初の項目に対して呼び出されません。これは本当にうまくいかないことを意味します。

2。 onHiddenChanged()を使用してください:この回答は本当でしたが、今は機能しません。このコードを断片的にチェックしました。しかし、これは時々呼び出されません。

@Override 
public void onHiddenChanged(boolean hidden) { 
    super.onHiddenChanged(hidden); 
    Log.e(TAG , " "+hidden); 
} 

3。 setOnPageChangeListenerのようなviewPagerのページングのためのいくつかのアイデア:注意を払う、私はすべての時間の断片で本当の答えをしたい。だけではなくviewPagerまたは他のビュー

ため、私はANADこれらのリンクで回答を得ました...:

How to determine when Fragment becomes visible in ViewPager

Detect when fragment becomes visible [duplicate]

いずれかが真の答えで私を助けることができますか?

+0

このタグを自動検出します。 :) – b4hr4m

+0

うん。 。 。 。 。 。 。 。 。 – b4hr4m

+0

ええ。それは本当だ 。しかし、私はそれがシステムのタグを変更しない方が良いと思う – b4hr4m

答えて

0

私はsetUserVisibleHintを使用しています。私はあなたが与えることを忘れていると思いますsuper.setUserVisibleHint(isVisibleToUser); setUserVisibleHint関数内の

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if (isVisibleToUser) { 
     //When fragment is visible 
    } 
} 

希望すると助かります。
ありがとう

+0

あなたに答えてくれてありがとう。しかしもう一度それは目に見える自動車を検出しない – b4hr4m

関連する問題