文章目录

  • 一、罗列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 军火库 控件相关推荐

  1. 视频教程-Android Material Design 新控件-Android

    Android Material Design 新控件 刘志远,北京邮电大学硕士研究生, 北京育华志远科技有限公司创始人, 育华志远教育品牌负责人,育华志远课程体系打造者. 率领团队为互联网行业培训千 ...

  2. xamarin.android 控件,Android 库控件 - Xamarin | Microsoft Docs

    Xamarin Android 库控件Xamarin.Android Gallery control 03/15/2018 本文内容 Gallery是一种布局小组件,用于显示水平滚动列表中的项,并将当 ...

  3. Android Material Design简单使用 http://www.cnblogs.com/android-blogs/p/5632103.html

    Android Material Design简单使用 吐槽 作为一个 Android developer,没有什么比拿着 UI 设计的一堆 iOS 风格的设计 来做需求更恶心的了,基本所有空间都要照 ...

  4. Android Material Design Icon Genenerator 插件为个人开发者提供 Icon 图标大全

    前言 如果你作为个人开发者,没有美工小姐姐的情况下,项目中的图标 icon 很是苦恼.之前用过阿里巴巴图标库 Iconfont,后来发现 Android studio 中有一个很牛逼的 icon 插件 ...

  5. Android Material Design 系列之 BottomNavigationView + ViewPager + Fragment + BadgeView 开发详解

    前言 BottomNavigationView 是 Material Design 提供的一个标准底部导航栏的实现,可以轻松的实现导航栏菜单之间的切换与浏览.底部导航使用户更方便的查看和切换最高层级的 ...

  6. Android Material Design按钮样式

    本文翻译自:Android Material Design Button Styles I'm confused on button styles for material design. 我对材质设 ...

  7. android夜间模式揭露动画,Android Material Design系列之夜间模式

    今天我们讲讲夜间模式的实现,这篇文章的名字应该叫:<Android Material Design系列之夜间模式>.在Android 5.0 之后,实现夜间模式并非很难了,支持的5.0库提 ...

  8. android excel布局,Androidui布局控件(2)表格布局excelPanel

    推荐理由 RecycleView定制组件 支持向左,向右加载过去,未来数据 列行表头锁定 作为表格布局,可以作为您的ui公共组件库里面的一员,你可以二次开发,让它变得更加可定制化,可扩展,更强大 In ...

  9. Study on Android【四】--显示控件使用

    Android的界面显示同样也是基于控件的.通常是用View(包括ViewGroup)控件配上XML的样式来做的.具体细节不想说了,可以参考 Samples里的ApiDemos/View,和View的 ...

最新文章

  1. android apk 微信登入_Android集成第三方微信登录
  2. 红帽linux lnmp搭建,Linux(redhat5.4)下lnmp环境的搭建
  3. CAN 总线 之七 BOSCH CAN 位时序 和 同步
  4. Spring Boot2.0 JPA 实现分页(简单查询分页、复杂查询分页)
  5. 响应式设计(Response Web Design)浅谈
  6. Minimizing Difference CodeForces - 1244E(贪心题)
  7. 【BZOJ - 4754】独特的树叶(树哈希)
  8. sd_fusing.sh将uboot烧写到SD卡
  9. vs xaml 语句完成 自动列出成员_数据传输 | mysqldiff/mysqldbcompare 实现 DTLE 自动化测试...
  10. LoadRunner12安装说明以及问题解决
  11. Effective_STL 学习笔记(七) 当使用 new 得指针容器时,记得在销毁容器前 delete 那些指针...
  12. 利用 Python 制作酷炫的飞船大战!|原力计划
  13. linux上samba+本地yum源最简单的配置
  14. 鸿蒙智慧屏安装应用,谁说华为智慧屏不能装APP,我来打脸了,附零难度安装APP教程...
  15. 云部署中的 公有云 私有云 混合云 社区云 基本概念快速掌握
  16. 我的读书笔记 -《厚黑学》
  17. zoom html css3,csszoom css zoom标签移动端可以用吗
  18. 【linux】 不要再暴力关机了,讲讲我最近遇到的问题和完美解决方案
  19. 2021年Bootstrap实用手册和最强总结以及工具
  20. C++ free指针时的异常

热门文章

  1. Zotero win10/mac/iPad三台设备同步
  2. 如何在三年内赚够100万
  3. 前端可不止页面美化这么简单,用户体验爽不爽还得靠它
  4. CSS起名表 (css ID CLASS名称参考)
  5. 上海远丰:移动电商崛起,微商城抢占移动商机
  6. Java移动开发网络研讨会2:续集
  7. 1.STM32基本知识
  8. CMDB(cmdb)
  9. 基于51单片机的电子万年历的设计
  10. 卜晓萌‘s lovings