version:2.2

fix:
update:接口优化
This commit is contained in:
2023-01-13 18:05:17 +08:00
parent 6540365e9f
commit 5cddcd0f8e
10 changed files with 128 additions and 68 deletions

View File

@@ -18,9 +18,13 @@ import com.trello.rxlifecycle4.android.RxLifecycleAndroid;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
public class BaseFragment extends Fragment implements LifecycleProvider<FragmentEvent> {
public abstract class BaseFragment extends Fragment implements LifecycleProvider<FragmentEvent> {
public final BehaviorSubject<FragmentEvent> lifecycleSubject = BehaviorSubject.create();
protected boolean isViewInitiated;
protected boolean isVisibleToUser;
protected boolean isDataInitiated;
@Override
@NonNull
@CheckResult
@@ -56,6 +60,35 @@ public class BaseFragment extends Fragment implements LifecycleProvider<Fragment
lifecycleSubject.onNext(FragmentEvent.CREATE);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
isViewInitiated = true;
prepareFetchData();
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
this.isVisibleToUser = isVisibleToUser;
prepareFetchData();
}
public abstract void fetchData();
public boolean prepareFetchData() {
return prepareFetchData(false);
}
public boolean prepareFetchData(boolean forceUpdate) {
if (isVisibleToUser && isViewInitiated && (!isDataInitiated || forceUpdate)) {
fetchData();
isDataInitiated = true;
return true;
}
return false;
}
@Override
@CallSuper
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {