What event is triggered when a tab fragment is selected

前端 未结 3 593
孤城傲影
孤城傲影 2021-01-01 18:40

I\'m using tab fragments in an activity and the actionbar hosts the tabs. What I want to do is that whenever a fragment appears (or re-appears) in the view (selected by the

相关标签:
3条回答
  • 2021-01-01 19:15

    Try setUserVisibleHint() in the fragment as described in this answer. When the fragment is in the selected tab, setUserVisibleHint() will be called with true, and when the fragment is not the selected tab, setUserVisibleHint() will be called with false. This works for me using the support library.

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
    
        if (isVisibleToUser)
            Log.d("MyFragment", "Fragment is visible.");
        else
            Log.d("MyFragment", "Fragment is not visible.");
    }
    
    0 讨论(0)
  • 2021-01-01 19:32

    You can override setUserVisibleHint(boolean isVisibleToUser) or onHiddenChanged (boolean hidden) method.

    • In case of setUserVisibleHint(boolean isVisibleToUser),
      isVisibleToUser=true when fragment is visible and isVisibleToUser=false when fragment is hidden.

    • In case of onHiddenChanged (boolean hidden), hidden:True if the
      fragment is now hidden, false if it is not visible.

    0 讨论(0)
  • 2021-01-01 19:34

    I haven't tested this, but I believe you can use the onHiddenChanged method of the Fragment

    From the docs:

    Called when the hidden state (as returned by isHidden() of the fragment has changed.

    http://developer.android.com/reference/android/app/Fragment.html#onHiddenChanged%28boolean%29

    0 讨论(0)
提交回复
热议问题