@@ -25,7 +25,6 @@ public class VisibleDelegate {
25
25
private boolean mNeedDispatch = true ;
26
26
private boolean mInvisibleWhenLeave ;
27
27
private boolean mIsFirstVisible = true ;
28
- private boolean mFixStatePagerAdapter ;
29
28
private boolean mFirstCreateViewCompatReplace = true ;
30
29
31
30
private Handler mHandler ;
@@ -42,10 +41,9 @@ public VisibleDelegate(ISupportFragment fragment) {
42
41
public void onCreate (@ Nullable Bundle savedInstanceState ) {
43
42
if (savedInstanceState != null ) {
44
43
mSaveInstanceState = savedInstanceState ;
45
- if (!mFixStatePagerAdapter ) { // setUserVisibleHint() may be called before onCreate()
46
- mInvisibleWhenLeave = savedInstanceState .getBoolean (FRAGMENTATION_STATE_SAVE_IS_INVISIBLE_WHEN_LEAVE );
47
- mFirstCreateViewCompatReplace = savedInstanceState .getBoolean (FRAGMENTATION_STATE_SAVE_COMPAT_REPLACE );
48
- }
44
+ // setUserVisibleHint() may be called before onCreate()
45
+ mInvisibleWhenLeave = savedInstanceState .getBoolean (FRAGMENTATION_STATE_SAVE_IS_INVISIBLE_WHEN_LEAVE );
46
+ mFirstCreateViewCompatReplace = savedInstanceState .getBoolean (FRAGMENTATION_STATE_SAVE_COMPAT_REPLACE );
49
47
}
50
48
}
51
49
@@ -63,8 +61,7 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
63
61
mFirstCreateViewCompatReplace = false ;
64
62
}
65
63
66
- if (!mInvisibleWhenLeave && !mFragment .isHidden () &&
67
- (mFragment .getUserVisibleHint () || mFixStatePagerAdapter )) {
64
+ if (!mInvisibleWhenLeave && !mFragment .isHidden () && mFragment .getUserVisibleHint ()) {
68
65
if ((mFragment .getParentFragment () != null && isFragmentVisible (mFragment .getParentFragment ()))
69
66
|| mFragment .getParentFragment () == null ) {
70
67
mNeedDispatch = false ;
@@ -107,19 +104,15 @@ public void onHiddenChanged(boolean hidden) {
107
104
108
105
public void onDestroyView () {
109
106
mIsFirstVisible = true ;
110
- mFixStatePagerAdapter = false ;
111
107
}
112
108
113
109
public void setUserVisibleHint (boolean isVisibleToUser ) {
114
- if (mFragment .isResumed () || (mFragment .isDetached () && isVisibleToUser )) {
110
+ if (mFragment .isResumed () || (! mFragment .isAdded () && isVisibleToUser )) {
115
111
if (!mIsSupportVisible && isVisibleToUser ) {
116
112
safeDispatchUserVisibleHint (true );
117
113
} else if (mIsSupportVisible && !isVisibleToUser ) {
118
114
dispatchSupportVisible (false );
119
115
}
120
- } else if (isVisibleToUser ) {
121
- mInvisibleWhenLeave = false ;
122
- mFixStatePagerAdapter = true ;
123
116
}
124
117
}
125
118
0 commit comments