Android 开发之Android Material Design NavigationView侧滑界面自定义

一、侧滑界面Menu自定义:

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

<?xmlversion ="1.0"encoding="utf-8"?>

android:title="十万个为什么"/>

android:title="百科知识"/>

android:title="科普博览"/>

android:title="科普读物"/>

android:title="我的私藏"/>

android:title="作者"/>

android:title="版权说明"/>

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

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

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">

android:layout_height="wrap_content"

android:paddingTop="@dimen/nav_header_vertical_spacing"

android:src="@mipmap/ic_launcher"

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

android:layout_height="wrap_content"

android:paddingTop="@dimen/nav_header_vertical_spacing"

android:text="@string/app_name"

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

android:layout_height="wrap_content"

android:text="Encyclopedia World"

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

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

将自定义menu和头部布局添加到activity_main.xml布局文件的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

声明NavigationView:

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);

对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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐