Android Material Design控件使用(二)

Material Button

Material Button是具有更新视觉样式的可自定义按钮组件,且内部内置了多种样式。

TextInputLayout&TextInputEditText

  • android:hint 提示文字
  • app:counterEnabled 是否添加计数功能,默认是false
  • app:counterMaxLength 最大的输入数量(如果计数显示的话,影响显示)
  • app:errorEnabled 是否有错误提示
  • app:errorTextAppearance 设置错误提示的文字样式
  • app:hintAnimationEnabled 是否设置提示文字的动画
  • app:hintEnabled 是否启动浮动标签功能,如果不启用的话,所有提示性信息都将在Edittext中显示
  • app:hintTextAppearance 设置提示性文字的样式
  • app:passwordToggleContentDescription 该功能是为Talkback或其他无障碍功能提供
  • app:passwordToggleEnabled 是否显示后面的提示图片
  • app:passwordToggleDrawable 替换后面的提示图片
  • app:passwordToggleTint 给后面的提示图片设置颜色
  • app:passwordToggleTintMode 控制密码可见开关图标的背景颜色混合模式
  • app:counterOverflowTextAppearance 设置计算器越位后的文字颜色和大小(通过style进行设置的)
  • app:counterTextAppearance 设置正常情况下的计数器文字颜色和大小(通过style进行设置的)

TabLayout

  • app:tabBackground 设置TableLayout的背景色
  • app:tabTextColor 设置未被选中时文字的颜色
  • app:tabSelectedTextColor 设置选中时文字的颜色
  • app:tabIndicatorColor 设置滑动条的颜色
  • app:tabTextAppearance=“@android:style/TextAppearance.Large”
    设置TableLayout的文本主题,无法通过textSize来设置文字大小,只能通过主题来设定
  • app:tabMode=“scrollable”
    设置TTableLayout可滑动,当页数较多时,一个界面无法呈现所有的导航标签,此时就必须要用。
    在这里插入图片描述

Bottom Sheet

Bottom Sheet是Design Support Library23.2 版本引入的一个类似于对话框的控件,可以暂且叫做底
部弹出框吧。 Bottom Sheet中的内容默认是隐藏起来的,只显示很小一部分,可以通过在代码中设置
其状态或者手势操作将其完全展开,或者完全隐藏,或者部分隐藏
有两种类型的Bottom Sheet:

  1. Persistent bottom sheet :- 通常用于显示主界面之外的额外信息,它是主界面的一部分,只不过
    默认被隐藏了,其深度(elevation)跟主界面处于同一级别;还有一个重要特点是在Persistent
    bottom sheet打开的时候,主界面仍然是可以操作的,其实Persistent bottom sheet不能算是一个控件,因为它只是一个普通的布局在CoordinatorLayout这个布局之下所表现出来的特殊行为。
    所以其使用方式跟普通的控件也很不一样,它必须在CoordinatorLayout中,并且是CoordinatorLayout的直接子view
    app:layout_behavior=“@string/bottom_sheet_behavior”,定义了这个属性就相当于告诉了CoordinatorLayout这个布局是一个bottom sheet,它的显示和交互都和普通的view
    不同。@string/bottom_sheet_behavior是一个定义在支持库中的字符串,等效于
    android.support.design.widget.BottomSheetBehavior
    Bottom Sheets具有五种状态:
  • STATE_COLLAPSED: Bottom
    Sheets是可见的,但只显示可视(部分)高度。此状态通常是底部工作表的“静止位置”。可视高度由开发人员选择,应足以表明有额外的内容,允许用户触发某个动作或扩展Bottom
    Sheets;
  • STATE_EXPANDED: Bottom Sheets是可见的并且它的最大高度并且不是拖拽或沉降;
  • STATE_DRAGGING:用户主动向上或向下拖动Bottom Sheets;
  • STATE_SETTLING: 拖动/轻扫手势后,Bottom
    Sheets将调整到特定高度。这将是可视高度,展开高度或0,以防用户操作导致底部表单隐藏;
  • STATE_HIDDEN: Bottom Sheets隐藏。

如果已经在Activity使用CoordinatorLayout,添加底部表单很简单:

  • 将任何视图添加为CoordinatorLayout的直接子视图。
  • 通过添加以下xml属性来应用该行为
    app:layout_behavior=“com.google.android.material.bottomsheet.BottomSheetBehavior”
  • 设置所需的行为标志
  • app:behavior_hideable:是否可以通过拖拽隐藏底部表单。
  • app:behavior_peekHeight:折叠状态的窥视高度。
  • app:behavior_skipCollapsed:如果底部表单可隐藏,并且设置为true,则表单不会处于折叠状态

bottom sheet的状态是通过BottomSheetBehavior来设置的,因此需要先得到BottomSheetBehavior
对象,然后调用BottomSheetBehavior.setState()来设置状态,比如设置为折叠状态:
BottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); 我们还可以通过
BottomSheetBehavior.getState() 来获得状态。要监听bottom sheet的状态变化则使setBottomSheetCallback方法,之所以需要监听是因为bottomsheet的状态还可以通过手势来改变

  • 模态bottom sheet :- 顾名思义,模态的bottom sheet在打开的时候会阻止和主界面的交互,并且
    在视觉上会在bottom sheet背后加一层半透明的阴影,使得看上去深度(elevation)更深

CoordinatorLayout

CoordinatorLayout(协调者布局)是在 Google IO/15 大会发布的,遵循Material 风格,包含在 supportLibrary中,结合AppbarLayout, CollapsingToolbarLayout等 可 产生各种炫酷的效果CoordinatorLayout是用来协调其子view并以触摸影响布局的形式产生动画效果的一个super-poweredFrameLayout,其典型的子View包括:FloatingActionButton,SnackBar。注意:CoordinatorLayout是一个顶级父View

AppBarLayout

AppBarLayout是LinearLayout的子类,必须在它的子view上设置app:layout_scrollFlags属性或者是在代码中调用setScrollFlags()设置这个属性。
AppBarLayout的子布局有5种滚动标识:

  • scroll:所有想滚动出屏幕的view都需要设置这个flag, 没有设置这个flag的view将被固定在屏幕顶部。
  • enterAlways:这个flag让任意向下的滚动都会导致该view变为可见,启用快速“返回模式”。
  • enterAlwaysCollapsed:假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度的时候开始显示,并且从这个时候开始慢慢展开,当滚动到顶部的时候展开完。
  • exitUntilCollapsed:当你定义了一个minHeight,此布局将在滚动到达这个最小高度的时候折叠。
  • snap:当一个滚动事件结束,如果视图是部分可见的,那么它将被滚动到收缩或展开。例如,如果视图只有底部25%显示,它将折叠。相反,如果它的底部75%可见,那么它将完全展开。

CollapsingToolbarLayout

CollapsingToolbarLayout作用是提供了一个可以折叠的Toolbar,它继承自FrameLayout,给它设置layout_scrollFlags,它可以控制包含CollapsingToolbarLayout中的控件(如:ImageView、Toolbar)在响应layout_behavior事件时作出相应的scrollFlags滚动事件(移除屏幕或固定在屏幕顶
端)。CollapsingToolbarLayout可以通过app:contentScrim设置折叠时工具栏布局的颜色,通过app:statusBarScrim设置折叠时状态栏的颜色。默认contentScrim是colorPrimary的色值,
statusBarScrim是colorPrimaryDark的色值
CollapsingToolbarLayout的子布局有3种折叠模式(Toolbar中设置的app:layout_collapseMode)

  • off:默认属性,布局将正常显示,无折叠行为。
  • pin:CollapsingToolbarLayout折叠后,此布局将固定在顶部。
  • parallax:CollapsingToolbarLayout折叠时,此布局也会有视差折叠效果。

当CollapsingToolbarLayout的子布局设置了parallax模式时,我们还可以通过app:layout_collapseParallaxMultiplier设置视差滚动因子,值为:0~1。

NestedScrollView

在新版的support-v4兼容包里面有一个NestedScrollView控件,这个控件其实和普通的ScrollView并没有多大的区别,这个控件其实是Meterial Design中设计的一个控件,目的是跟MD中的其他控件兼容。应该说在MD中,RecyclerView代替了ListView,而NestedScrollView代替了ScrollView,他们两个都可以用来跟ToolBar交互,实现上拉下滑中ToolBar的变化。在NestedScrollView的名字中其实就可以看出他的作用了,Nested是嵌套的意思,而ToolBar基本需要嵌套使用。

FloatingActionButton

FloatingActionButton就是一个漂亮的按钮,其本质是一个ImageVeiw。有一点要注意,MeterialDesign引入了Z轴的概念,就是所有的view都有了高度,他们一层一层贴在手机屏幕上,而FloatingActionButton的Z轴高度最高,它贴在所有view的最上面,没有view能覆盖它。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gujunhe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值