package com.wmdigit.setting; import androidx.appcompat.widget.Toolbar; import androidx.drawerlayout.widget.DrawerLayout; import androidx.recyclerview.widget.RecyclerView; import com.alibaba.android.arouter.facade.annotation.Route; import com.elvishew.xlog.XLog; import com.wmdigit.common.base.mvvm.BaseMvvmNaviDrawerActivity; import com.wmdigit.common.constants.RouteConstant; import com.wmdigit.common.model.DrawerMenuItemModel; import com.wmdigit.setting.databinding.ActivitySettingBinding; import com.wmdigit.setting.viewmodel.SettingViewModel; import java.util.List; /** * 设置页 * @author dizi */ @Route(path = RouteConstant.ROUTE_SETTING) public class SettingActivity extends BaseMvvmNaviDrawerActivity<SettingViewModel, ActivitySettingBinding> { /** * fragment的导航id */ private final int[] FRAGMENTS_NAVI_IDS = { R.id.systemInfoFragment, R.id.registerFragment, R.id.dataManagerFragment, R.id.dataLearningFragment, R.id.cameraCropFragment }; @Override protected void initView() { } @Override protected void initData() { } @Override public void initObserve() { super.initObserve(); // 观察页码位置 mViewModel.pagePosition.observe(this, position -> { if (position == 3){ mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); // 关闭抽屉 mDrawerLayout.close(); } else{ // 开启抽屉 mDrawerLayout.open(); mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN); } }); } @Override protected int getLayoutId() { return R.layout.activity_setting; } @Override protected Class<SettingViewModel> getViewModel() { return SettingViewModel.class; } @Override protected int getFragmentContainerViewId() { return R.id.nav_host_setting_fragment; } @Override protected Toolbar getToolbar() { return mDataBinding.toolbar; } @Override protected int getToolbarMenuResId() { return com.wmdigit.common.R.menu.toolbar_menu; } @Override protected List<DrawerMenuItemModel> getMenuData() { // 初始化导航菜单 return mViewModel.getDrawerMenuItemModels(); } @Override protected DrawerLayout getDrawerLayout() { return mDataBinding.drawerLayout; } @Override protected RecyclerView getDrawerMenu() { return mDataBinding.rvDrawerMenu; } @Override protected boolean allowCloseDrawer() { return mViewModel.checkAllowCloseDrawer(); } @Override protected void onDrawerMenuItemClickListener(int position) { if (position == mViewModel.pagePosition.getValue()) { return; } // 选中抽屉菜单的指定项 mViewModel.selectDrawerMenuItem(position); // 导航到对应页面 navigation(FRAGMENTS_NAVI_IDS[position]); } }