| | |
| | | import android.view.LayoutInflater; |
| | | import android.view.View; |
| | | import android.view.ViewGroup; |
| | | import android.view.Window; |
| | | |
| | | import androidx.annotation.IdRes; |
| | | import androidx.annotation.NonNull; |
| | |
| | | |
| | | import com.android.app_base.action.TitleBarAction; |
| | | import com.android.app_base.base.StateViewEnum; |
| | | import com.android.app_base.base.action.ClickAction; |
| | | import com.android.app_base.base.viewmodel.BaseViewModel; |
| | | import com.gyf.immersionbar.ImmersionBar; |
| | | import com.hjq.bar.TitleBar; |
| | |
| | | * @date 2023.03.02. 15:50 |
| | | * @desc Fragment基类 |
| | | */ |
| | | public abstract class BaseFragment<V extends ViewDataBinding,VM extends BaseViewModel> extends Fragment implements TitleBarAction { |
| | | protected V binding; |
| | | public abstract class BaseFragment<VDB extends ViewDataBinding,VM extends BaseViewModel> extends Fragment implements TitleBarAction, ClickAction { |
| | | protected VDB binding; |
| | | protected VM viewModel; |
| | | private int viewModelId; |
| | | |
| | |
| | | public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { |
| | | isLoaded = false; |
| | | if (getLayoutId() > 0){ |
| | | binding = DataBindingUtil.inflate(inflater,getLayoutId(), container, false); |
| | | binding = initViewBinding(inflater, container); |
| | | mRootView = binding.getRoot(); |
| | | return mRootView; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { |
| | |
| | | getLifecycle().addObserver(viewModel); |
| | | |
| | | } |
| | | /** |
| | | * 初始化ViewBinding |
| | | */ |
| | | protected VDB initViewBinding(LayoutInflater inflater, @Nullable ViewGroup container) { |
| | | return DataBindingUtil.inflate(inflater,getLayoutId(), container, false); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 初始化ViewModel |