|
|
|
|
@ -12,6 +12,9 @@ import androidx.viewbinding.ViewBinding; |
|
|
|
|
|
|
|
|
|
public abstract class BaseFragment extends Fragment { |
|
|
|
|
|
|
|
|
|
private boolean isViewCreated; |
|
|
|
|
private boolean isDataLoaded; |
|
|
|
|
|
|
|
|
|
protected abstract ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container); |
|
|
|
|
|
|
|
|
|
@Nullable |
|
|
|
|
@ -22,6 +25,14 @@ public abstract class BaseFragment extends Fragment { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { |
|
|
|
|
isViewCreated = true; |
|
|
|
|
if (getUserVisibleHint()) { |
|
|
|
|
lazyLoad(); |
|
|
|
|
isDataLoaded = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void lazyLoad() { |
|
|
|
|
initView(); |
|
|
|
|
initEvent(); |
|
|
|
|
} |
|
|
|
|
@ -31,4 +42,20 @@ public abstract class BaseFragment extends Fragment { |
|
|
|
|
|
|
|
|
|
protected void initEvent() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void setUserVisibleHint(boolean isVisibleToUser) { |
|
|
|
|
super.setUserVisibleHint(isVisibleToUser); |
|
|
|
|
if (isVisibleToUser && isViewCreated && !isDataLoaded) { |
|
|
|
|
lazyLoad(); |
|
|
|
|
isDataLoaded = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onDestroyView() { |
|
|
|
|
super.onDestroyView(); |
|
|
|
|
isViewCreated = false; |
|
|
|
|
isDataLoaded = false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|