一步步走进Android MaterialDesign 之 NavigationView
来源:互联网 发布:网络说唱歌曲大连站 编辑:程序博客网 时间:2024/06/05 16:55
接上一篇文章,我们将左边留给NavigationView。虽然这玩意我觉得没什么意义,但是还是看下
先看效果
再看代码
<android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> <FrameLayout android:id="@+id/menu" android:background="@android:color/white" android:layout_gravity="right" android:layout_width="200dip" android:layout_height="match_parent"> </FrameLayout> <android.support.design.widget.NavigationView android:id="@+id/navigation_view" android:theme="@style/ThemeOverlay.AppCompat.Light" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="left" app:menu="@menu/menu_navigation" app:headerLayout="@layout/navigation_head"> </android.support.design.widget.NavigationView></android.support.v4.widget.DrawerLayout>
有两个很明显的参数
- app:headerLayout 这玩意就是顶上那个唯一一个机器人的layout
- app:menu 这玩意就是下面那个列表
我们看下那个列表是怎么实现的
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <group> <item android:id="@+id/menu_1" android:checked="true" android:icon="@mipmap/ic_launcher" android:title="菜单1"> </item> <item android:id="@+id/menu_2" android:checked="true" android:icon="@mipmap/ic_launcher" android:title="菜单2"> </item> <item android:id="@+id/menu_3" android:checked="true" android:icon="@mipmap/ic_launcher" android:title="菜单3"> </item> </group> <item android:title="submenu"> <menu> <item android:id="@+id/menu_4" android:checked="true" android:icon="@mipmap/ic_launcher" android:title="菜单4"> </item> <item android:id="@+id/menu_5" android:checked="true" android:icon="@mipmap/ic_launcher" android:title="菜单5"> </item> </menu> </item></menu>
第一层group就是一级主菜单,其中每一个item就是这个主菜单的子菜单。随后的item就是二级菜单,通过android:title设置二级菜单名称,其中menu中的item就是二级菜单中的子菜单。就是这么简单。
写完布局就可以直接跑了,但是我们还得设置点击菜单的监听事件
navigation_view.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { if (pre!=null) { pre.setCheckable(false); } menuItem.setCheckable(true); drawer_layout.closeDrawer(Gravity.LEFT); pre=menuItem; return true; }});
通过动态设置checkable和布局中的android:checked=”true”熟悉,可以产生点击之后的颜色变化效果,这个点击后的颜色跟我们设置的colorPrimary一致
0 0
- 一步步走进Android MaterialDesign 之 NavigationView
- 一步步走进Android MaterialDesign
- 一步步走进Android MaterialDesign 之 DrawerLayout
- 一步步走进Android MaterialDesign 之 TabLayout
- 一步步走进Android MaterialDesign 之 ToolBar动画效果(1)
- 一步步走进Android MaterialDesign 之 ToolBar动画效果(2)
- 一步步走进Android MaterialDesign 之 其余小控件
- MaterialDesign 之 NavigationView
- MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏(抽屉)
- MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏
- MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏(抽屉)
- android MaterialDesign之CardView
- Android Material Design 之 NavigationView
- Android开发之MaterialDesign动画总结
- Android Support Design Library之NavigationView
- Android Support Design Library之NavigationView
- Android Design Support Library之NavigationView
- Android Design Support之NavigationView实战
- 重建索引:ALTER INDEX..REBUILD ONLINE vs ALTER INDEX..REBUILD
- 如何分析解决ANR
- OJ积累-输出时间日期(友元类)
- 内存溢出和内存泄漏的区别
- 欧拉回路
- 一步步走进Android MaterialDesign 之 NavigationView
- html5之websql深入理解
- 终极 Shell
- 内部类的分类与特点
- 解决gnuplot中'Terminal type set to 'unknown'不能显示绘图的问题
- eclipse 打包jar及提交spark执行步骤
- Varnish+Nginx搭建缓存服务器
- imageload如何更改文件名
- MySQL优化之——修改默认存储引擎