android material design 军火库 控件
文章目录
- 一、罗列MD风格的控件
- DrawerLayout(滑动菜单-主体布局)
- Toolbar
- NavigationView(滑动菜单-菜单布局)
- FloatingActionButton + Sanckbar
- CoordinatorLayout
- CardView(卡片式布局)
- AppBarLayout
- SwipeRefreshLayout(下拉刷新)
- CollapsingToolbarLayout()
- NestedScrollView
- TextInputLayout
- SwitchCompat
- TabLayout
- Bottom Sheet
- BottomNavigationView
- 二、一点经验
一、罗列MD风格的控件
1、DrawerLayout(滑动菜单-主体布局)
2、Toolbar
3、NavigationView(滑动菜单-菜单布局)
4、FloatingActionButton + Sanckbar
5、CoordinatorLayout
6、CardView(卡片式布局)
7、AppBarLayout
8、SwipeRefreshLayout(下拉刷新)
9、CollapsingToolbarLayout
10、NestedScrollView
11、TextInputLayout:
12、 SwitchCompat
13、TabLayout(顶部导航栏)
14、Bottom Sheet(底部弹出选项栏)
15、BottomNavigationView(底部导航栏)
DrawerLayout(滑动菜单-主体布局)
首先介绍第一个控件就是DrawerLayout,是Material Design最基础的控件,滑动菜单就是将一些菜单选项隐藏起来,而不是放在主屏幕上,然后可以通过滑动的方式将菜单显示出来。DrawerLayout的用法很简单,首先它是一个布局,允许在布局中放入两个直接子控件,第一个控件是主屏幕中显示的内容,第二个则是隐藏的控件通过滑动来显示内容。
https://blog.csdn.net/XCF95319605/article/details/81121207
Toolbar
当我们的滑动菜单弹出的时候,ActionBar是没有任何反应的,依然挡住了顶部的部分显示空间,因此ActionBar十分的不灵活,故使用Toolbar来替换掉ActionBar,这也是Google希望的,Toolbar不仅拥有ActionBar的全部功能,而且还能更好的支持Material Design效果,现在我们更改一下布局文件,替换掉系统的ActionBar,在此之前,我们需要更改应用的默认主题,将主题指定为NoActionBar的,即去掉ActionBar,步骤:1.打开AndroidManifest.xml文件,2.打开AppTheme主题资源文件,3.修改AppTheme文件。
https://blog.csdn.net/XCF95319605/article/details/81121207
https://blog.csdn.net/Fly_li_sir/article/details/79716898
NavigationView(滑动菜单-菜单布局)
目前我们已经可以实现简单的滑动菜单效果,但是效果还比较的简陋,不过我们可以通过Google提供的NavigationView控件来为我们的滑动菜单的菜单布局,将会达到更好的效果,不过在使用NavigationView之前,需要我们将NavigationView控件所在的库添加进来,在app/build.gradle文件中添加如下内容:
https://blog.csdn.net/XCF95319605/article/details/81121207
https://blog.csdn.net/Fly_li_sir/article/details/79716898
FloatingActionButton + Sanckbar
FloatingActionButton的点击事件的使用和普通的Button是相同的,我们在FloatingActionButton的点击事件中使用Sanckbar来提示用户,Sanckbar的使用和Toast类似,只是除了提示以外,Sanckbar还可以执行一些简单的逻辑,Activity代码如下:
https://blog.csdn.net/XCF95319605/article/details/81121207
CoordinatorLayout
从上面第四步的截图我们发现弹出的Snackbar遮挡住了我们的浮动按钮,这是一种很不友好的用户体验,所以,Google为我们准备了CoordinatorLayout这个控件来解决这个问题,同样是在Design支持库中,我们只需要将滑动菜单的默认显示页的最外层布局指定为CoordinatorLayout即可,修改后的xml文件如下所示。为什么CoordinatorLayout可以实现让浮动按钮向上移动的效果呢?那是因为该控件会监听它里面所有控件的状态,接下来看看使用CoordinatorLayout后的运行效果,
https://blog.csdn.net/XCF95319605/article/details/81121207
CardView(卡片式布局)
CardView是实现卡片式布局的重要控件,由appcompat-v7库提供,需要在build.gradle文件中声明库的依赖:compile ‘com.android.support:cardview-v7:26.+’, CardView的使用也很简单,我们先来看看简单的使用方法,如下xml布局文件所示:
https://blog.csdn.net/XCF95319605/article/details/81121207
https://blog.csdn.net/Fly_li_sir/article/details/79704021
AppBarLayout
这个控件就是为了解决上面的遮挡问题的,实际上AppBarLayout是一个垂直方向的LinearLayout,但是,在它的内部还做了一些滚动事件的封装,且用了Material Design的设计理念,接下来看看这个控件如何使用,很简单,两个步骤即可,第一步,在我们的Toolbar控件外层嵌套AppBarLayout,修改后的xml布局文件如下所示:
https://blog.csdn.net/XCF95319605/article/details/81121207
https://blog.csdn.net/Fly_li_sir/article/details/79716898
SwipeRefreshLayout(下拉刷新)
到目前为止,基本的数据已经可以正常展示了,现在,我们将模拟的数据换成新闻数据,然后用Recycler
View来展示新闻,然后实现下拉刷新新闻数据,说到下拉刷新,Google也为我们封装了一个适配MD风格的控件,就是SwipeRefreshLayout,SwipeRefreshLayout的使用很简单,我们只需在之前的RecyclerView控件的外层加上SwipeRefreshLayout就行了,activity_main.xml布局文件修改如下:
https://blog.csdn.net/XCF95319605/article/details/81121207
CollapsingToolbarLayout()
新闻展示界面我们已经做好了,现在就来进行新闻详细显示页的布局,用到的控件基本都是前面所学过的控件,不过这里要新学习一个控件就是CollapsingToolbarLayout,该控件可以实现一个可折叠式标题栏的效果,根据控件名我们就能猜出,该控件是作用于Toolbar之上的,而且该控件也是由Design支持库提供的,并且该控件只能嵌套在AppBarLayout中使用,即xml布局文件应该是这种结构:
https://blog.csdn.net/XCF95319605/article/details/81121207
NestedScrollView
现在,可折叠式标题栏也完成了,就差显示新闻详情的界面了,在这儿我们用NestedScrollView来作为显示新闻的最外层的布局,里面嵌套一个线性布局(注意:NestedScrollView布局内只能有一个布局,所以我们嵌套线性布局来进行里面的布局),里面的布局也很简单,在线性布局内嵌套CardView,在CardView的里面放一个TextView就ok了,完整的布局文件如下所示,包括上面的可折叠式标题栏的布局:
https://blog.csdn.net/XCF95319605/article/details/81121207
TextInputLayout
TextinputLayout实际上可以看成对EditText加装了一层外壳
https://blog.csdn.net/weixin_43889841/article/details/90703441
https://blog.csdn.net/Fly_li_sir/article/details/79704021
SwitchCompat
SwitchCompat是符合谷歌Material design的Selection control组件,与传统的Switch以及ToggleButton不同,v7包中的这个组件兼容了绝大多数低版本手机,令组件的兼容性得到了极大的提升。
https://www.jianshu.com/p/796e2f7f0ed2
TabLayout
TabLayout实现顶部导航
https://www.jianshu.com/p/88679fed9ecb
Bottom Sheet
bottom sheet 谈不上控件什么的,就是一种提供选项给用户的方式,底部弹出选项栏:
https://blog.csdn.net/Fly_li_sir/article/details/79716898
BottomNavigationView
使用BottomNavigationView底部导航栏、添加数量角标提醒
https://blog.csdn.net/a_zhon/article/details/78334515
https://blog.csdn.net/Fly_li_sir/article/details/80064979
二、一点经验
到这里,基本可以得到一个通用的结论,那就是在Material Design中,外层的布局方式基本为最外层为DrawerLayout的滑动布局,滑动布局内部的主界面为CoordinatorLayout布局,而滑动的隐藏布局为NavigationView,而用户的主页布局只需在CoordinatorLayout添加布局即可,而隐藏界面的布局则通过menu文件和layout文件来指定给NavigationView即可,基本框架如下xml文件所示:
android material design 军火库 控件相关推荐
- 视频教程-Android Material Design 新控件-Android
Android Material Design 新控件 刘志远,北京邮电大学硕士研究生, 北京育华志远科技有限公司创始人, 育华志远教育品牌负责人,育华志远课程体系打造者. 率领团队为互联网行业培训千 ...
- xamarin.android 控件,Android 库控件 - Xamarin | Microsoft Docs
Xamarin Android 库控件Xamarin.Android Gallery control 03/15/2018 本文内容 Gallery是一种布局小组件,用于显示水平滚动列表中的项,并将当 ...
- Android Material Design简单使用 http://www.cnblogs.com/android-blogs/p/5632103.html
Android Material Design简单使用 吐槽 作为一个 Android developer,没有什么比拿着 UI 设计的一堆 iOS 风格的设计 来做需求更恶心的了,基本所有空间都要照 ...
- Android Material Design Icon Genenerator 插件为个人开发者提供 Icon 图标大全
前言 如果你作为个人开发者,没有美工小姐姐的情况下,项目中的图标 icon 很是苦恼.之前用过阿里巴巴图标库 Iconfont,后来发现 Android studio 中有一个很牛逼的 icon 插件 ...
- Android Material Design 系列之 BottomNavigationView + ViewPager + Fragment + BadgeView 开发详解
前言 BottomNavigationView 是 Material Design 提供的一个标准底部导航栏的实现,可以轻松的实现导航栏菜单之间的切换与浏览.底部导航使用户更方便的查看和切换最高层级的 ...
- Android Material Design按钮样式
本文翻译自:Android Material Design Button Styles I'm confused on button styles for material design. 我对材质设 ...
- android夜间模式揭露动画,Android Material Design系列之夜间模式
今天我们讲讲夜间模式的实现,这篇文章的名字应该叫:<Android Material Design系列之夜间模式>.在Android 5.0 之后,实现夜间模式并非很难了,支持的5.0库提 ...
- android excel布局,Androidui布局控件(2)表格布局excelPanel
推荐理由 RecycleView定制组件 支持向左,向右加载过去,未来数据 列行表头锁定 作为表格布局,可以作为您的ui公共组件库里面的一员,你可以二次开发,让它变得更加可定制化,可扩展,更强大 In ...
- Study on Android【四】--显示控件使用
Android的界面显示同样也是基于控件的.通常是用View(包括ViewGroup)控件配上XML的样式来做的.具体细节不想说了,可以参考 Samples里的ApiDemos/View,和View的 ...
最新文章
- android apk 微信登入_Android集成第三方微信登录
- 红帽linux lnmp搭建,Linux(redhat5.4)下lnmp环境的搭建
- CAN 总线 之七 BOSCH CAN 位时序 和 同步
- Spring Boot2.0 JPA 实现分页(简单查询分页、复杂查询分页)
- 响应式设计(Response Web Design)浅谈
- Minimizing Difference CodeForces - 1244E(贪心题)
- 【BZOJ - 4754】独特的树叶(树哈希)
- sd_fusing.sh将uboot烧写到SD卡
- vs xaml 语句完成 自动列出成员_数据传输 | mysqldiff/mysqldbcompare 实现 DTLE 自动化测试...
- LoadRunner12安装说明以及问题解决
- Effective_STL 学习笔记(七) 当使用 new 得指针容器时,记得在销毁容器前 delete 那些指针...
- 利用 Python 制作酷炫的飞船大战!|原力计划
- linux上samba+本地yum源最简单的配置
- 鸿蒙智慧屏安装应用,谁说华为智慧屏不能装APP,我来打脸了,附零难度安装APP教程...
- 云部署中的 公有云 私有云 混合云 社区云 基本概念快速掌握
- 我的读书笔记 -《厚黑学》
- zoom html css3,csszoom css zoom标签移动端可以用吗
- 【linux】 不要再暴力关机了,讲讲我最近遇到的问题和完美解决方案
- 2021年Bootstrap实用手册和最强总结以及工具
- C++ free指针时的异常