1、添加依赖:

compile 'com.android.support:design:25.3.0'     //5.0特性

compile 'de.hdodenhof:circleimageview:2.1.0'    //用于图片显示的圆形化

2、创建一个menu文件的nav_menu.xml文件

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android">    <group android:checkableBehavior="single"/>

    <item        android:id="@+id/item_one"        android:icon="@mipmap/ic_launcher"        android:title="one"/>

    <item        android:id="@+id/item_two"        android:icon="@mipmap/ic_launcher"        android:title="two"/>

    <item        android:id="@+id/item_three"        android:icon="@mipmap/ic_launcher"        android:title="three"/>

    <item        android:id="@+id/item_four"        android:icon="@mipmap/ic_launcher"        android:title="four"/>

</menu><group/>标签表示一个组,checkableBehavior="single"表示下面的<item/>只能单选,icom属性指定菜单项图标,title属性指定菜单项显示的文字

3、创建一个nav_header.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"                android:layout_width="match_parent"                android:layout_height="180dp"                android:background="?attr/colorPrimary"                android:padding="10dp">

    <de.hdodenhof.circleimageview.CircleImageView        android:id="@+id/ic_image"        android:layout_width="70dp"        android:layout_height="70dp"        android:layout_centerInParent="true"        android:src="@mipmap/ic_launcher_round"/>

    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentStart="true"        android:layout_below="@+id/ic_image"        android:layout_marginTop="10dp"        android:gravity="center"        android:text="GoodBoy"        android:textSize="18sp"/>

</RelativeLayout>
其中android:background="?attr/colorPrimary"将背景设置成系统颜色,<de.hdodenhof.circleimageview.CircleImageView/>是将图片圆形化

4、将menu和headerLayout设置到main中
<android.support.v4.widget.DrawerLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/drawer_layout"    android:layout_width="match_parent"    android:layout_height="match_parent">

    <FrameLayout        android:layout_width="match_parent"        android:layout_height="match_parent">

        <include layout="@layout/toolbar"/>    </FrameLayout>

    <android.support.design.widget.NavigationView        android:id="@+id/nav_view"        android:layout_width="match_parent"        android:layout_height="match_parent"android:layout_gravity="start"        app:headerLayout="@layout/nav_header"        app:menu="@menu/nav_menu">

    </android.support.design.widget.NavigationView>

</android.support.v4.widget.DrawerLayout>其中</android.support.v4.widget.DrawerLayout>是由support-v4库提供的就是滑动菜单, 第一个子控件是FrameLayout:作为主屏幕要显示的内容(里面嵌套了一个toolbar),第二个子控件是滑动菜单中显示的内容即</android.support.design.widget.NavigationView>。现在补充一下android:layout_gravity="start" 这个属性是必须指定的,指定left表示滑动菜单在左边,right表示滑动菜单在右边;而start是根据系统语言判断:比如汉语、英语作为系统语言是从左往右->滑动菜单就在左边,相反则在右边。
:toolbar代码:
<android.support.v7.widget.Toolbar    xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/toolbar"    android:background="@color/colorPrimary"    android:minHeight="?attr/actionBarSize"    android:layout_width="match_parent"    android:layout_height="wrap_content">

    <TextView        android:id="@+id/tv_tb_title"        android:layout_gravity="center"        android:textSize="20sp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/>

</android.support.v7.widget.Toolbar>加一个TextView是为了提供选择标题是否居中,要居中则使用其TextView,另外设置toolbar.setTitle("")即可5、Activity主要代码:
setContentView(R.layout.nav_main);Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);TextView textView = (TextView) findViewById(R.id.tv_tb_title);textView.setText("Navigation");toolbar.setTitle("");setSupportActionBar(toolbar);--------------------------------------------------------------------------------效果图:


转载于:https://www.cnblogs.com/banzhuan/p/6672770.html

DrawerLayout和NavigationView的简单实用相关推荐

  1. android新特性:DrawerLayout与NavigationView配合使用

    首先看一下效果吧 Android Design Support Library中增加了 NavigationView与DrawerLayout这个控件.代替SlidingMenu项目中的使用! 在这里 ...

  2. 一个简单实用的,基于EF的三层架构

    到底什么样的框架才是好框架呢?或许不同人有不同的看法.我个人觉一个好的框架,最重要的要是简单实用,能快速适开发,可维护性高(不会出现复制黏贴的代码),并能快速响应各种业务场景的变化的框架,同时性能不会 ...

  3. html 可调节进度条控件,jQuery简单实用的轻量级进度条插件

    jQMeter是一款简单实用的轻量级进度条jQuery插件,它可以显示为水平或垂直进度条,进度条加载时带有动画特效,你只需要简单的传入一些参数到jQMeter对象的构造函数中就可以完成你想要的进度条效 ...

  4. 分享几个用 Python 给图片添加水印的方法,简单实用

    作者 |俊欣 来源 |关于数据分析与可视化 今天来分享几种可以给图片添加水印的方法,都是十分的简单实用,大家在看了之后也可以私底下去自己试试,有些方法需要的代码量就比较少,有些方法需要的代码量就稍微多 ...

  5. matlab简单程序实例_visual basic VB.NET实例系列教程第一节(简单实用抽奖程序)...

    近期疫情原因,工作比较不忙,所以打算出一套零基础,VB.NET实例系列入门教程,实用又好玩,带大家进入VB的编程世界里,希望这套图文教程能帮到有需要的人! 第一节(简单实用抽奖程序) 内容准备:编译环 ...

  6. 用aspnetpager实现datalist分页(绝对的简单实用)

    微软的Datalist在做电子相册时候必不可少,但是不支持分页功能,都出到2008了还是没有分页功能,幸好网上有个专业的分页空间aspnetpager,帮我们解决了大问题,说实在话的,网上关于data ...

  7. 这两天老是有兄弟问到Vue的登陆和注册,登陆成功留在首页,没有登录回到登录页面,现在我用最简单实用的方法实现(两分钟技就看懂)...

    其实登录注册,并且登录一次保持登录的状态,是每个项目都需要实现的功能. 网上也有很多的方法,不过,不是通俗易懂,在这里说一下我自己的方法,非常简单实用 核心就是用localStorage存.取数据,这 ...

  8. sql 拼接int类型的字段_一套简单实用的SQL脚本(下篇)

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 之前已经分享了一部分内容<一套简单实用的SQL脚本(上篇)>接上一章我们继 ...

  9. python读取excel表格-python读写Excel表格的实例代码(简单实用)

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xlrd 2.python写excel--xlwt 1.读excel数据,包括日期等数据 ...

最新文章

  1. 阿里云实时计算的前世“功”今生“能”
  2. golang 反射 获取 设置 结构体 字段值
  3. 汇编语言——《子程序应用(数制转换)程序设计》实验报告
  4. python第七关再来一盘_7、 Python系列,七,的,集合
  5. java list加入listview_Android ListView自动生成列表条目的实例
  6. 开发10年,全记在这本Java进阶宝典里了!
  7. throw与throws
  8. mac无法下载python_无法在Mac上安装Python包(gcc4.0错误)
  9. 在PaddlePaddle框架下通过两层全连接网络实现IRIS数据分类
  10. Android开发之数据库Sqlite
  11. 嘻哈说:设计模式之工厂方法模式
  12. 深度强化学习中的对抗攻击和防御
  13. Typora常用好看主题推荐
  14. linux下检测USB的热插拨
  15. 推荐几款主流好用的远程终端连接管理软件
  16. 成就系统和任务系统的设计
  17. 查询快递 如何操作查询快递物流信息给单号进行标记
  18. 2007年IBM合作伙伴峰会及新年策略发布
  19. 为iOS的mobileconfig文件进行签名
  20. 关于textarea传值(取出,写入数据库)问题

热门文章

  1. JavaScript数据类型之Boolean以及undefined和null(4)
  2. 模具计算机辅助设计笔试题,模具CADCAM试卷
  3. torch.utils.data.DataLoader 详解
  4. opencv 学习第二课 摄像头、外部视频读取、处理、显示、写入 代码注释版 保证你每一行都能读懂
  5. matlab2c使用c++实现matlab函数系列教程-normstat函数
  6. win10 Anaconda 安装教程
  7. zynq开发系列6:创建AXI IP实现PS对PL的数据配置(步骤二配置block design)
  8. 在计算机科学中算法指的是,算法 - 为什么斐波纳契数在计算机科学中具有重要意义?...
  9. luogu p1652 圆
  10. 18.7 修改IP地址