千家信息网

Android中DrawerLayout怎么实现侧滑菜单效果

发表于:2024-09-28 作者:千家信息网编辑
千家信息网最后更新 2024年09月28日,这篇文章主要介绍"Android中DrawerLayout怎么实现侧滑菜单效果"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android中DrawerLay
千家信息网最后更新 2024年09月28日Android中DrawerLayout怎么实现侧滑菜单效果

这篇文章主要介绍"Android中DrawerLayout怎么实现侧滑菜单效果"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android中DrawerLayout怎么实现侧滑菜单效果"文章能帮助大家解决问题。

效果图:

开始写代码

DrawerLayout 是v4包里面的,所以项目里面需要添加v4包,具体怎么添加就不多说了,
NavigationView需要在build.gradle里面添加compile 'com.android.support:design:25.1.0'

activity_main.xml

    

然后在res文件夹里面添加一个menu菜单文件夹,已经添加的就不用添加了

上面的代码里面NavigationView里面有个 app:menu="@menu/activity_main_drawer"对应如下:
添加一个菜单文件,名字随意,我的是activity_main_drawer.xml

activity_main_drawer.xml

              

再添加一个布局

上面的代码里面app:headerLayout="@layout/nav_header_main"对应如下:
添加一个布局,名字是nav_header_main.xml

nav_header_main.xml

   

MainActivity:

public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener { private LinearLayout right; private NavigationView left; private boolean isDrawer=false; private DrawerLayout drawer; @Override public int getLayoutId() { return R.layout.activity_main; } @Override public void initPresenter() { } @Override public void initView() { drawer = (DrawerLayout) findViewById(R.id.drawer_layout); right = (LinearLayout) findViewById(R.id.right); left = (NavigationView) findViewById(R.id.nav_view); NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); right.setOnTouchListener(new View.OnTouchListener() {  @Override  public boolean onTouch(View view, MotionEvent motionEvent) {  if(isDrawer){   return left.dispatchTouchEvent(motionEvent);  }else{   return false;  }  } }); drawer.setDrawerListener(new DrawerLayout.DrawerListener() {  @Override  public void onDrawerSlide(View drawerView, float slideOffset) {  isDrawer=true;  //获取屏幕的宽高  WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);  Display display = manager.getDefaultDisplay();  //设置右面的布局位置 根据左面菜单的right作为右面布局的left 左面的right+屏幕的宽度(或者right的宽度这里是相等的)为右面布局的right  right.layout(left.getRight(), 0, left.getRight() + display.getWidth(), display.getHeight());  }  @Override  public void onDrawerOpened(View drawerView) {}  @Override  public void onDrawerClosed(View drawerView) {  isDrawer=false;  }  @Override  public void onDrawerStateChanged(int newState) {} }); } @Override public void onBackPressed() { if (drawer.isDrawerOpen(GravityCompat.START)) {  drawer.closeDrawer(GravityCompat.START); } else {  super.onBackPressed(); } } @SuppressWarnings("StatementWithEmptyBody") @Override public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. int id = item.getItemId(); if (id == R.id.nav_camera) {  // Handle the camera action } else if (id == R.id.nav_gallery) { } else if (id == R.id.nav_slideshow) { } else if (id == R.id.nav_manage) { } else if (id == R.id.nav_share) { } else if (id == R.id.nav_send) { } DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); return true; }

drawer.openDrawer(GravityCompat.START);//打开滑动菜单

drawer.closeDrawer(GravityCompat.START);//关闭滑动菜单

drawer.isDrawerOpen(GravityCompat.START);//判断滑动菜单是否打开

关于"Android中DrawerLayout怎么实现侧滑菜单效果"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

菜单 布局 效果 面的 侧滑 代码 文件 知识 名字 宽度 屏幕 文件夹 行业 不同 实用 不用 位置 内容 实用性 实际 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 微信公众号服务器管理平台 网络营销软件开发铸造辉煌 国内网络安全政策 银行软件开发用的是什么 英灵神殿队友连不上服务器 在互联网中部署多台缓存服务器 网络安全课题ppt 台州工业软件开发工具 空中充值软件开发 腾讯软件开发工程师 统计局网络安全自查总结报告 广电网络技术人员 网络安全等保测评前景 linux 服务器命令 云服务器拿来做啥 河南省国家网络安全宣传周 软件开发时期不包括总体设计 和软件开发相关的社团名称 软件开发培训自我鉴定 陌陌聊天记录是否上传服务器 数据仓库与数据库的区别主要有 服务器管理与配置报告怎么写 自动测算软件开发工作量 关系数据库中访问数据库的方式 软件开发转正工作总结报告 如何进入一个电脑版服务器 工程安全软件开发需求调查 杭州启翔网络技术有限公司 常德软件开发公司哪家强 木瓜互联网科技幻想手抄报
0