Material Design入门(上)

来源:互联网 发布:淘宝开店创业 编辑:程序博客网 时间:2024/05/17 09:36

 
如果是继承了AppCompatActiity的Activity,其Theme必须使用Theme.Appcompat theme 或者AppTheme类型的主题

RelativeLayout里面子控件设置layout_gravity是无效的,FrameLayout可以


CoordinatorLayout(协调者布局)继承自ViewGroup, 把CoordinatorLayout作为根布局容器,其子控件可以不用写动画相关的代码就能产生动画


FloatingActionButton(浮动操作按钮)间接继承自ImageButton

专用:SnackBar,类似Toast

如果FloatingActionButton不是放CoordinatorLayout(协调者布局)下,底部的悬浮按钮点击后不会有弹出的SnackBar将图标顶起来的效果

如果在Toolbar所属的根布局下(一般CoordinatorLayout)下,缺少android: fitsSystemWindows="true" 这句话,则状态栏为空白.加上代表适应系统, 并把内容显示到状态栏    

和ActionBar不一样,ToolBar在布局文件中手动添加,有这句:android:background="?attr/colorPrimary"    否则其背景色为白色


 AppBarLayout (应用标题栏容器 )继承自LinearLayout,并且只能作为CoordinatorLayout里的第一个子view


5.0以后,如果清单文件中的AppTheme.NoActionBar在styles.xml中修改了颜色属性(不再是透明的),则其他操作并不会改变它


NestedScrollView 类似于ScrollView, 配合AppBarLayout执行动画使用.其内部的内容会滑动,并且改变AppBarLayout里控件的效果

和ScrollView一样,NestedScrollView也是继承了FrameLayout,并且一定要添加`app:layout_behavior`属性才会滚动

子控件有layout_scrollFlags="scroll" 才会随着滚动而滚动,并且一直滑动到AppBarLayout中最后一个有此属性的子控件的下边与状态栏下边齐为止

上拉的时候是先将NestedScrollView上方的AppBarLayout滑动完毕后才开始滑动NestedScrollView中的内容,下拉的时候相反

这种状态如果改变了layout_scrollFlags的属性会改变


如果ToolBar也配置了enterAlways,现象会很奇怪

exitUntilCollapsed:   最多只能滑动到显示的(折叠后)的高度=最小高度

最好直接在AppBarLayout里配置    android : fitsSystemWindows="true"



可以被自定义在values/syles.xml中的值覆盖

 

CollapsingToolbarLayout是继承自FrameLayout的.因此其内部控件会有互相叠加的效果.如果配置了滑动效果,被它包裹的子控件不必再添加,也会有滑动效果
如果需要Toolbar有折叠效果, 可以让CollapsingToolbarLayout包裹Toolbar.下面是给Toolbar添加`app:layout_collapseMode`不同属性实现不同的滑动效果:

Pin
如图, 相当于让CollapsingToolbarLayout临时托管了Toolbar的标题内容, 执行平移和缩放动画
上图中我们给Toolbar设置了一个绿色背景,代码中setTitle("Toolbar"),可以看出这里CollapsingToolbarLayout内部做了处理,将本该交给Toolbar显示的标题gone掉.拿到自己这里显示
为了让自己有滑动效果,必须配置app:layout_scrollFlags="scroll",如果想出现随着CollapsingToolbarLayout向上滑动,ToolBar一直不动,标题经过一系列动态最终在Toolbar中显示,就要将ToolBar的layout_collapseMode设置为图钉.并且CollapsingToolbarLayout还要设置exitUntilCollapsed,否则连它自己都会滑出屏幕       三者缺一,就会出现Toolbar滑动出屏幕的情况
     


None


Parallax
此处用Toolbar,因为没有什么内容显示,效果不明显.只可以看到Toolbar没有完全隐藏,留了一点宽度.此模式是视差模式,随父控件进行高度缩放


如果用图片演示,效果会比较明显
              
 如图,为了形成对比,我们对Toolbar设置了背景颜色,但不给它配置滑动模式,而将图片的设置为parallax.可以看到图片随着父控件的上移,高度在缩放,位置也在上移,变短,但没有消失

CollapsingToolbarLayout包裹需要滑动的控件,设置其属性,将想要固定不动控件的放到其根布局之外,AppBarLayout之内,可以很灵活的实现滑动效果
   


TabLayout继承自HorizontalScrollView

TextInputLayout继承了LinearLayout,并且一次只能包裹一个控件
 
 可以在代码中重新设置提示.并且可以取消提示的动画.这样就是点击切换的时候比较生硬








0 0
原创粉丝点击