NavigatorView抽屉效果
来源:互联网 发布:战龙三国典藏四灵数据 编辑:程序博客网 时间:2024/05/17 01:05
一. 简介
Android 5.0之后推出了Design新特性,大大方便了开发者,以前编写抽屉使用DrawerLayout,现在使用DrawerLayout包含NavigatorView。NavigationView需要接收几个必要的参数、一个用于显示头部的布局(可选)以及用于建立导向选项的菜单,这些都设置完之后,你就只添加监听选中事件的listener就行了。
二. 使用
(1)在Res文件夹下新建menu文件夹,创建navigator_menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".main.widget.MainActivity"> <group android:checkableBehavior="single"> <item android:id="@+id/navigation_item_news" android:icon="@mipmap/ic_launcher" android:checked="true" android:title="NavigatorItem1" /> <item android:id="@+id/navigation_item_images" android:icon="@mipmap/ic_launcher" android:title="NavigatorItem2" /> <item android:id="@+id/navigation_item_weather" android:icon="@mipmap/ic_launcher" android:title="NavigatorItem3" /> <item android:id="@+id/navigation_item_about" android:icon="@mipmap/ic_launcher" android:title="NavigatorItem4" /> </group></menu>
头布局可以按照你自己的要求创建
如
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="200dp" android:orientation="vertical" android:background="?attr/colorPrimaryDark" android:gravity="center" android:theme="@style/ThemeOverlay.AppCompat.Dark" > <ImageView android:layout_width="72dp" android:layout_height="72dp" android:layout_marginTop="20dp" android:src="@mipmap/ic_launcher" /> <TextView android:layout_marginTop="10dp" android:textSize="18sp" android:layout_width="match_parent" android:gravity="center" android:layout_height="wrap_content" android:text="@string/app_name" android:textAppearance="@style/TextAppearance.AppCompat.Body1"/></LinearLayout>
接下来在你的Activity initView()方法中找到控件并设置监听
actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.open, R.string.close); actionBarDrawerToggle.syncState(); drawerLayout.setDrawerListener(actionBarDrawerToggle); //侧边栏 setupDrawerContent(navigatorView);
监听方法
private void setupDrawerContent(NavigationView navigatorView) { navigatorView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { mainPresenter.switchNavigation(item.getItemId()); item.setChecked(true); drawerLayout.closeDrawers(); return true; } }); }
activity_main.xml
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" > <android.support.design.widget.CoordinatorLayout android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent"> <include android:id="@+id/appbar" layout="@layout/init_toolbar_title"/> <FrameLayout android:id="@+id/fragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/appbar" android:scrollbars="none" android:elevation="5dp" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> <android.support.design.widget.NavigationView android:id="@+id/navigator_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:headerLayout="@layout/navigation_header" app:menu="@menu/navigation_menu" /></android.support.v4.widget.DrawerLayout>
0 0
- NavigatorView抽屉效果
- 抽屉效果
- 抽屉效果
- 抽屉效果
- 抽屉效果
- 抽屉效果
- 抽屉效果
- 抽屉效果
- 抽屉效果
- 抽屉效果
- 抽屉效果
- 抽屉效果
- 实现Android 抽屉效果
- android 抽屉 效果
- android 抽屉效果
- android抽屉效果
- android--抽屉效果
- Android 抽屉效果Demo
- 《我要自学网》——DW CS5 摘要
- 欢迎使用CSDN-markdown编辑器
- php常用函数
- Android开发:Translucent System Bar 的最佳实践
- 解决输入法为全英文时,打双引号出现第一个双引号不显示,打完两个双引号才同时显示的问题
- NavigatorView抽屉效果
- Codeforces Round #362 (Div. 2)B. Barnicle(较坑模拟【菜鸡与大佬的区别】)
- Ztree
- 网卡多队列技术与RSS功能介绍
- 5.7.1、部署时报NT Service无处理权限的解决方法
- 深入.NET 第二章 上机练习2
- Android从一个应用程序启动第三方应用app
- 学习笔记_js(dom,document,bom和window之间的关系)
- Flume安装配置笔记