博客
关于我
Android滑动导航菜单的快速构建
阅读量:108 次
发布时间:2019-02-26

本文共 1042 字,大约阅读时间需要 3 分钟。

李济洲作为我们公众号的“老司机”,今天就由他来带大家学习如何快速构建导航菜单。他的博客内容分为上下两篇,我们这里整合成一篇,希望不要超载。

李济洲的博客地址是:http://blog.csdn.net/leejizhou

滑动导航菜单一直是移动App中流行的UI设计,随着Material Design的盛行,Android开发中这种设计越来越普遍。今天我们将总结如何利用Android API快速构建各种类型的滑动导航菜单效果。

第一种样式是QQ客户端V6版本的滑动菜单效果。实现这个UI效果需要利用V4包的SlidingPaneLayout控件,这是一个帮助开发者实现水平多层滑动的布局控件,继承自ViewGroup。SlidingPaneLayout的主要方法包括setParallaxDistance、setCoveredFadeColor、setSliderFadeColor、setPanelSlideListener、openPane和closePane等。

第二种样式是主视图不动,边缘划出菜单效果。这需要使用V4包的DrawerLayout布局容器。DrawerLayout和SlidingPaneLayout都利用了V4的ViewDragHelper来实现滑动效果。DrawerLayout的主要方法包括addDrawerListener、openDrawer、closeDrawer和isDrawerOpen等。

当下的设计标准

在Material Design之前,官方对滑动导航菜单的设计标准是将菜单布局放在ActionBar下方。然而,随着Android 5.0 Material Design的推出,官方对滑动导航菜单的设计标准有了重大调整。新的标准化设计要求滑动导航菜单一跃来至所有界面的顶端。

与DrawerLayout配合使用的NavigationView是实现标准设计的滑动导航菜单的最佳选择。NavigationView需要在XML布局中设置android:layout_gravity="start"或"end",并通过app:headerLayout属性传入导航菜单的头部布局。NavigationView在Design库中需要添加相应的依赖库:compile 'com.android.support:design:24.0.0'。

如果你有好的技术文章想和大家分享,欢迎向我的公众号投稿,投稿具体细节请在公众号主页点击“投稿”菜单查看。

你可能感兴趣的文章
npm和yarn的使用对比
查看>>
npm如何清空缓存并重新打包?
查看>>
npm学习(十一)之package-lock.json
查看>>
npm安装 出现 npm ERR! code ETIMEDOUT npm ERR! syscall connect npm ERR! errno ETIMEDOUT npm ERR! 解决方法
查看>>
npm安装crypto-js 如何安装crypto-js, python爬虫安装加解密插件 找不到模块crypto-js python报错解决丢失crypto-js模块
查看>>
npm安装教程
查看>>
npm报错Cannot find module ‘webpack‘ Require stack
查看>>
npm报错Failed at the node-sass@4.14.1 postinstall script
查看>>
npm报错fatal: Could not read from remote repository
查看>>
npm报错File to import not found or unreadable: @/assets/styles/global.scss.
查看>>
npm报错TypeError: this.getOptions is not a function
查看>>
npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
查看>>
npm淘宝镜像过期npm ERR! request to https://registry.npm.taobao.org/vuex failed, reason: certificate has ex
查看>>
npm版本过高问题
查看>>
npm的“--force“和“--legacy-peer-deps“参数
查看>>
npm的安装和更新---npm工作笔记002
查看>>
npm的常用操作---npm工作笔记003
查看>>
npm的常用配置项---npm工作笔记004
查看>>
npm的问题:config global `--global`, `--local` are deprecated. Use `--location=global` instead 的解决办法
查看>>
npm编译报错You may need an additional loader to handle the result of these loaders
查看>>