//接口
public interface IView {
Context context();
}
//P层
public abstract class BasePresenter<V extends IView> {
protected V view;
public BasePresenter(V view) {
this.view = view;
initModel();
}
protected abstract void initModel();
void onDrestroy(){
view=null;
}
}
//V层
public abstract class BaseFragment<P extends BasePresenter> extends Fragment{
protected P presenter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(provideLayoutId(), null);
presenter=providePresenter();
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initView();
initListance();
initData();
}
protected abstract void initData();
protected abstract void initListance();
protected abstract void initView();
protected abstract P providePresenter();
protected abstract int provideLayoutId();
//懒加载
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser){
if (presenter==null){
return;
}else {
noVisible();
}
initData();
}
}
protected void noVisible(){};
@Override
public void onDestroy() {
presenter.onDestroy();
super.onDestroy();
}
}