Android Material Design之 NavigationView侧滑界面自定义 随笔

一、侧滑界面Menu自定义:

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

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <menu xmlns:android="http://schemas.android.com/apk/res/android">
 3 <group android:checkableBehavior="single">
 4         <item android:id="@+id/nav_forWhy"     android:icon="@drawable/ic_nav_for_why"
 5             android:title="十万个为什么" />
 6         <item android:id="@+id/nav_knowledge" android:icon="@drawable/ic_nav_knowledge"
 7             android:title="百科知识" />
 8         <item android:id="@+id/nav_expo" android:icon="@drawable/ic_nav_expo"
 9             android:title="科普博览" />
10         <item android:id="@+id/nav_reader" android:icon="@drawable/ic_nav_reader"
11             android:title="科普读物" />
12         <item android:id="@+id/nav_favorite" android:icon="@drawable/ic_nav_favorite"
13             android:title="我的私藏" />
14     </group>
15
16     <item android:title="其他">
17         <menu>
18             <item android:id="@+id/nav_author" android:icon="@drawable/ic_nav_author"
19                 android:title="作者"/>
20             <item android:id="@+id/nav_about" android:icon="@drawable/ic_nav_about"
21                 android:title="版权说明" />
22         </menu>
23     </item>
24 </menu>

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

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

 1 <?xml version="1.0" encoding="utf-8"?>
 2
 3 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 4
 5     android:layout_width="match_parent"
 6
 7     android:layout_height="@dimen/nav_header_height"
 8
 9     android:background="@drawable/side_nav_bar"
10
11     android:paddingBottom="@dimen/activity_vertical_margin"
12
13     android:paddingLeft="@dimen/activity_horizontal_margin"
14
15     android:paddingRight="@dimen/activity_horizontal_margin"
16
17     android:paddingTop="@dimen/activity_vertical_margin"
18
19     android:theme="@style/ThemeOverlay.AppCompat.Dark"
20
21     android:orientation="vertical"
22
23     android:gravity="bottom">
24
25
26
27     <ImageView android:layout_width="wrap_content"
28
29         android:layout_height="wrap_content"
30
31         android:paddingTop="@dimen/nav_header_vertical_spacing"
32
33         android:src="@mipmap/ic_launcher"
34
35         android:id="@+id/imageView" />
36
37
38
39     <TextView android:layout_width="match_parent"
40
41         android:layout_height="wrap_content"
42
43         android:paddingTop="@dimen/nav_header_vertical_spacing"
44
45         android:text="@string/app_name"
46
47         android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
48
49
50
51     <TextView android:layout_width="wrap_content"
52
53         android:layout_height="wrap_content"
54
55         android:text="Encyclopedia World"
56
57         android:id="@+id/textView" />
58
59
60
61 </LinearLayout>

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

将自定义menu和头部布局添加到activity_main.xml布局文件的NavigationView控件中:
 1 <android.support.design.widget.NavigationView
 2
 3     android:id="@+id/nav_view"
 4
 5     android:layout_width="wrap_content"
 6
 7     android:layout_height="match_parent"
 8
 9     android:layout_gravity="start"
10
11     android:fitsSystemWindows="true"
12
13     app:headerLayout="@layout/nav_header_main"
14
15     app:menu="@menu/activity_main_drawer" />
四、在activity声明并调用NavigationView
1、声明NavigationView:
1 NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
2、对NavigationView每个item的进行监听:
 1 @Override
 2
 3 public boolean onNavigationItemSelected(MenuItem item) {
 4
 5     // Handle navigation view item clicks here.
 6
 7     int id = item.getItemId();
 8
 9
10
11     switch (id){
12
13         case R.id.nav_forWhy://十万个为什么
14
15                         break;
16
17         case R.id.nav_knowledge://百科知识
18
19                        break;
20
21         case R.id.nav_expo://科普博览
22             break;
23
24         case R.id.nav_reader://科普读物
25
26                       break;
27
28         case R.id.nav_favorite://我的私藏
29
30                        break;
31
32         case R.id.nav_author://作者
33
34                         break;
35
36         case R.id.nav_about://版权说明
37
38                      break;
39
40     }
41
42
43
44     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
45
46     drawer.closeDrawer(GravityCompat.START);//关闭侧滑界面
47
48     return true;
49
50 }
五、最终效果图:
 

Demo下载地址:http://zhushou.360.cn/detail/index/soft_id/3145828
时间: 2024-07-31 03:57:01

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

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

本文将介绍使用Google最新推出规范式设计中的NavigationView和DrawerLayout结合实现侧滑菜单栏效果,NavigationView是android-support-design包下的一个控件,该包下还有AppBarLayout.CoordinatorLayout.FloatingActionButton.SnackBar.TabLayout控件,也是Google在Android 5.x推荐规范式使用的控件.本系列将逐一介绍每个控件的使用... 好了,先来看看本文最终的效果

Android Material Design 兼容库的使用

Android Material Design 兼容库的使用 mecury 前言:近来学习了Android Material Design 兼容库,为了把这个弄懂,才有了这篇博客,这里先推荐两篇博客:1.Android Material Design 兼容库的使用详解2.Android应用Design Support Library完全使用实例第一篇博客是这个兼容库的详细解析,我参考了里面的许多内容,第二篇是兼容库的大致介绍,如果你能把这两篇全部弄懂,我这篇也没有必要看了.说了这么多,开始正文吧

Android Material Design新UI控件使用大全 一

序言 自从谷歌在2014年的IO大会上推出了Material Design新的设计规范后,安卓应用的整体美观程度提升了很大的一个层次, 安卓再也不是又黑又丑的界面,取而代之的是拥有丰富的颜色,美观的按钮,好的用户体验;但是刚开始的话这种设计规范只能在Android 5.0以上的手机上运行,导致开发者也只是自己去体验,在国内并没有大范围的推广,App的质量并不能大幅度的提升,但是作为改变世界的Google公司不久就推出了兼容库Android Material Design,这绝对是业界良心了,我们

Android Material Design初步认识

Android M新控件有很多,Toolbar,TabLayout,AppBarLayout,NavigationView,CoordinatorLayout,CollapsingToolbarLayout等等.写出这篇文章纯粹因为本人记忆力不行,特意来此记录,如有不对的地方,还请帮忙纠正! 如果想快速的认识怎么用以上控件,Google推出的Android Studio已经把整个Material整合成一个Model,大家直接Create New Project就能很直观的知道怎么用了~下面这张图

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

主要内容: 本文将要介绍Material design和Support library控件,主要包括TextInputLayout.SwitchCompat.SnackBar.FloatingActionButton.Shadows.Ripples.TabLayout.RecyclerView.Card.NavigationView.BottomSheet.Palette控件. 转载请注明出处,谢谢!! http://blog.csdn.net/johnny901114/article/deta

Material Design: NavigationView FlaotingActionBar SnackBar采用

转载 请明确说明 MingsangAndroid 本文介绍了Design Support Library的引入 拥抱Android Design Support Library新变化(导航视图.悬浮ActionBar..).今天则重点介绍当中三个控件:NavigationView和 FloatingActionBar以及 SnackBar的基本使用方法. 本文代码地址:DesignSupportDemo 为了便于各位练习,这是代码中会用到的全部图片素材 图片素材.zip 作为三者的综合练习,我们

Android Material Design带来的UI变革

谷歌Matias Duarte称,"Material Design是美丽和大胆的,因为干净的排版和布局简单且容易理解.内容才是焦点. 谷歌I/O 014开发者大会上宣布全新的设计语言"Material Design",适用于旗下所有平台,包括 Android.Chrome OS 和网页. 谷歌Matias Duarte称,"Material Design是美丽和大胆的,因为干净的排版和布局简单且容易理解.内容才是焦点." Material Design 初

MaterialEditText——Android Material Design EditText控件

MaterialEditText是Android Material Design EditText控件.可以定制浮动标签.主要颜色.默认的错误颜色等. 随着 Material Design 的到来, AppCompat v21 中也提供了 Material Design 的控件外观支持,其中包括 EditText .但 AppCompat 中的 EditText 实在有点难用,因为它是通过 colorAccent 来自动为控件着色的,并没有提供设置颜色的api,因此需要通过为控件定制theme的

android Material design是什么

Material design概述: Material design是一套UI样式标准,应该会提供一些新的API这写API包含了以下五大模块内容,分别是: Material Theme New Widgets View Shadows Animations New Capabilities for Drawables 1.material新的主题样式. 主题的颜色.动画.反馈效果都可以自定义: 2.控件阴影. 在原来的X,Y的基础之上增加了Z轴的阴影控制,Z值大的控件将显示在上面. 3.Recy