Materail Design 入门(九)—— NavigationView的使用
来源:互联网 发布:java导出excel表格poi 编辑:程序博客网 时间:2024/06/16 20:15
看到这张图片你肯定想好了布局方式,虽然很简单,我们还是来认识下Material Design为我们提供的一个比较简捷方便的控件NavigationView吧。
1、NavigationView的布局文件
这个控件使用起来也非常方便,先来看代码:
<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" 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/include_toolbar" /> <FrameLayout android:id="@+id/frame_content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/appbar" android:scrollbars="none" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> <android.support.design.widget.NavigationView android:id="@+id/navigation_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:menu="@menu/drawer" /></android.support.v4.widget.DrawerLayout>
menu的xml文件:
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> <group android:checkableBehavior="single"> <item android:id="@+id/navigation_item_book" android:icon="@drawable/ic_favorite" android:title="@string/navigation_book" /> <item android:id="@+id/navigation_item_example" android:icon="@drawable/ic_favorite" android:title="@string/navigation_example" /> <item android:id="@+id/navigation_item_blog" android:icon="@drawable/ic_favorite" android:title="@string/navigation_my_blog" /> <item android:id="@+id/navigation_item_about" android:icon="@drawable/ic_favorite" android:title="@string/navigation_about" /> </group></menu>
NavigationView的布局包含上下两个部分,如上图的绿色头部部分和白色菜单部分。布局文件中:app:menu:给NavigationView添加menu菜单布局;给NavigationView添加头部有两种方式:
1、 xml:app:headerLayout=”@layout/drawer_header”
2、Java:mNavigationView.inflateHeaderView(R.layout.navigation_header);
2、NavigationView的监听方法
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { switch (menuItem.getItemId()) { case R.id.navigation_item_book: switchToBook(); break; case R.id.navigation_item_example: switchToExample(); break; case R.id.navigation_item_blog: switchToBlog(); break; case R.id.navigation_item_about: switchToAbout(); break; } menuItem.setChecked(true); mDrawerLayout.closeDrawers(); return true; } });
正如ActionBar一样NavigationView用起来是非常方便但是这个控件也有很多弊病,尤其是在文字图标自定义方面,如果你有这个需求那么侧滑布局用listview或者framelayout+fragment实现更好这里不多介绍了。
阅读全文
0 0
- Materail Design 入门(九)—— NavigationView的使用
- Materail Design 入门(七)——AppBarLayout的使用方法
- Materail Design 入门(八)——CollapsingToolbarLayout的使用方法
- Materail Design 入门(十)—— RecyclerView的使用(一)
- Materail Design 入门(十)—— RecyclerView的使用(二)万能分隔线
- Materail Design 入门(三)——FloatingActionButton和Snackbar
- Materail Design 入门(五)—— 使用DrawerLayout实现仿qq6.0的侧滑菜单功能
- Materail Design 入门(五)—— 使用DrawerLayout实现仿qq6.0的侧滑菜单功能
- Materail Design 入门(六)—— TabLayout之使用介绍(1)
- Materail Design 入门(四)——Toolbar的使用方法(1)
- Materail Design 入门(四)——Toolbar的使用方法(2)
- Materail Design 入门(六)—— TabLayout之标题中添加自定义View(2)
- Material Design: NavigationView FlaotingActionBar SnackBar的使用,navigationview
- Material Design: NavigationView FlaotingActionBar SnackBar的使用,navigationview
- Material Design: NavigationView FlaotingActionBar SnackBar的使用
- Material Design: NavigationView FlaotingActionBar SnackBar的使用
- Design包下NavigationView的使用
- Material Design整理(五)——NavigationView
- UICollectionView创建头部headerview
- android studio 编译C生成.so文件
- SpringMVC的几种返回方式
- 高斯混合背景建模
- golang通道中 nil通道 close通道的特性点
- Materail Design 入门(九)—— NavigationView的使用
- iOS 钥匙串相关操作
- PHP7.0 报错Class 'XMLWriter' not found
- 深入了解java虚拟机之GC回收机制
- strust框架下默认Action default-action-ref 出现HTTP Status 500错误
- linux 下的两种软件安装方式 —— 源码(编译、安装),编译好的二进制(直接安装)
- 基于nginx的C模块代码实现获取POST请求参数并回传给客户端
- API函数操作COM口
- 【获奖公布】征文 | 你会为 AI 转型么?