一、侧滑界面Menu自定义:

在menu文件夹下新建activity_main_drawer.xml文件,自定义标题和icon:

 <?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/nav_forWhy" android:icon="@drawable/ic_nav_for_why"
android:title="十万个为什么" />
<item android:id="@+id/nav_knowledge" android:icon="@drawable/ic_nav_knowledge"
android:title="百科知识" />
<item android:id="@+id/nav_expo" android:icon="@drawable/ic_nav_expo"
android:title="科普博览" />
<item android:id="@+id/nav_reader" android:icon="@drawable/ic_nav_reader"
android:title="科普读物" />
<item android:id="@+id/nav_favorite" android:icon="@drawable/ic_nav_favorite"
android:title="我的私藏" />
</group> <item android:title="其他">
<menu>
<item android:id="@+id/nav_author" android:icon="@drawable/ic_nav_author"
android:title="作者"/>
<item android:id="@+id/nav_about" android:icon="@drawable/ic_nav_about"
android:title="版权说明" />
</menu>
</item>
</menu>

二、侧滑界面头部布局自定义

在layout下新建nav_header_main.xml文件进行侧滑界面头部自定义布局:

 <?xml version="1.0" encoding="utf-8"?>

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

     android:layout_width="match_parent"

     android:layout_height="@dimen/nav_header_height"

     android:background="@drawable/side_nav_bar"

     android:paddingBottom="@dimen/activity_vertical_margin"

     android:paddingLeft="@dimen/activity_horizontal_margin"

     android:paddingRight="@dimen/activity_horizontal_margin"

     android:paddingTop="@dimen/activity_vertical_margin"

     android:theme="@style/ThemeOverlay.AppCompat.Dark"

     android:orientation="vertical"

     android:gravity="bottom">

     <ImageView android:layout_width="wrap_content"

         android:layout_height="wrap_content"

         android:paddingTop="@dimen/nav_header_vertical_spacing"

         android:src="@mipmap/ic_launcher"

         android:id="@+id/imageView" />

     <TextView android:layout_width="match_parent"

         android:layout_height="wrap_content"

         android:paddingTop="@dimen/nav_header_vertical_spacing"

         android:text="@string/app_name"

         android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

     <TextView android:layout_width="wrap_content"

         android:layout_height="wrap_content"

         android:text="Encyclopedia World"

         android:id="@+id/textView" />

 </LinearLayout>

三、开始创建activity的布局文件

将自定义menu和头部布局添加到activity_main.xml布局文件的NavigationView控件中:
 <android.support.design.widget.NavigationView

     android:id="@+id/nav_view"

     android:layout_width="wrap_content"

     android:layout_height="match_parent"

     android:layout_gravity="start"

     android:fitsSystemWindows="true"

     app:headerLayout="@layout/nav_header_main"

     app:menu="@menu/activity_main_drawer" />
四、在activity声明并调用NavigationView
1、声明NavigationView:
 NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
2、对NavigationView每个item的进行监听:
 @Override

 public boolean onNavigationItemSelected(MenuItem item) {

     // Handle navigation view item clicks here.

     int id = item.getItemId();

     switch (id){

         case R.id.nav_forWhy://十万个为什么

                         break;

         case R.id.nav_knowledge://百科知识

                        break;

         case R.id.nav_expo://科普博览
break; case R.id.nav_reader://科普读物 break; case R.id.nav_favorite://我的私藏 break; case R.id.nav_author://作者 break; case R.id.nav_about://版权说明 break; } DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START);//关闭侧滑界面 return true; }
五、最终效果图:
 

Demo下载地址:http://zhushou.360.cn/detail/index/soft_id/3145828

Android Material Design之 NavigationView侧滑界面自定义 随笔的更多相关文章

  1. Android开发实战之拥有Material Design风格的侧滑布局

    在实现开发要求中,有需要会使用抽屉式布局,类似于QQ5.0的侧滑菜单,实现的方式有很多种,可以自定义控件,也可以使用第三方开源库. 同样的谷歌也推出了自己的侧滑组件——DrawLayout,使用方式也 ...

  2. Android Material Design NavigationView 及 Palette 颜色提取器

    DrawerLayout + NavigationView DrawerLayout布局,通常在里面添加两个子控件,程序主界面添加到NavitagionView前面. <android.supp ...

  3. Android Material Design:NavigationView抽屉导航菜单

    需要添加的包: 测试代码: package com.zzw.navigationview; import android.app.Activity; import android.os.Bundle; ...

  4. Material Design之NavigationView和DrawerLayout实现侧滑菜单栏

    本文将介绍使用Google最新推出规范式设计中的NavigationView和DrawerLayout结合实现侧滑菜单栏效果,NavigationView是android-support-design ...

  5. Android Material Design控件学习(二)——NavigationView的学习和使用

    前言 上次我们学习了TabLayout的用法,今天我们继续学习MaterialDesign(简称MD)控件--NavigationView. 正如其名,NavigationView,导航View.一般 ...

  6. Android Material Design 兼容库的使用

    Android Material Design 兼容库的使用 mecury 前言:近来学习了Android Material Design 兼容库,为了把这个弄懂,才有了这篇博客,这里先推荐两篇博客: ...

  7. Android Material Design(一)史上最全的材料设计控件大全

    主要内容: 本文将要介绍Material design和Support library控件,主要包括TextInputLayout.SwitchCompat.SnackBar.FloatingActi ...

  8. Material Design: NavigationView FlaotingActionBar SnackBar采用

    转载 请明确说明 MingsangAndroid 本文介绍了Design Support Library的引入 拥抱Android Design Support Library新变化(导航视图.悬浮A ...

  9. Android Material Design简单使用

    吐槽 作为一个 Android developer,没有什么比拿着 UI 设计的一堆 iOS 风格的设计 来做需求更恶心的了,基本所有空间都要照着 iOS 来画一遍,Material Design 辣 ...

随机推荐

  1. GitHub实战系列汇总篇

    基础: 1.GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9 http://www.cnblogs.com/dunitian/p/5034624.html 2.GitHub实战系 ...

  2. EventBus实现activity跟fragment交互数据

    最近老是听到技术群里面有人提出需求,activity跟fragment交互数据,或者从一个activity跳转到另外一个activity的fragment,所以我给大家介绍一个开源项目,EventBu ...

  3. JAVA程序员常用软件整理下载

    ********为了大家学习方便,特意整理软件下载如下:*************Java类软件:-------------------------------JDK7.0:http://pan.ba ...

  4. 【转】外部应用和drools-wb6.1集成解决方案

    一.手把手教你集成外部应用和drools workbench6.1 1.         首先按照官方文档安装workbench ,我用的是最完整版的jbpm6-console的平台系统,里面既包含j ...

  5. 值得注意的ibatis动态sql语法格式

    一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...

  6. 【HTML】Html页面跳转的5种方式

    目录结构: // contents structure [-] html实现 javascript方式实现 结合了倒数的javascript实现(IE) 解决Firefox不支持innerText的问 ...

  7. BPM公文管理解决方案分享

    一.方案概述 公文作为一种规范性文书,具有法律性.指导性.政令性强的特点,是企事业单位政令上通下达的重要方式.及时.准确.安全地处理.控制和管理公文,方能保障企事业单位正常运转,确保组织权威和政令畅通 ...

  8. BPM端到端流程解决方案分享

    一.需求分析 1.企业规模的不断发展.管理水平的不断提升,通常伴随着企业各业务板块管理分工更细.更专业,IT系统同样越来越多.越来越专 业化.不可避免的,部门墙和信息孤岛出现了,企业的流程被部门或者I ...

  9. Android(安卓)-------CardView

    1.activity_main.xml <android.support.v7.widget.CardView android:id="@+id/cardView" andr ...

  10. Atitit.软件研发团队建设原理与概论 理论

    Atitit.软件研发团队建设原理与概论 理论 培训 团队文化建设(内刊,ppt,书籍,杂志等) 梯队建设 技术储备人才的问题 团队建设--小红花评比. 团队建设--文化墙.doc 户外拓展 1. 团 ...