CoordinatorLayout +FloatingActionButton+SnackBar(MD风格二)

前言:本来这篇应该在1月份就发的,压在草稿箱好几个月了。被年末各种事情耽搁,年后又压来好几个新项目,直到现在才缓过来o(╥﹏╥)o;好了闲话不多说,进入主题!

说到CoordinatorLayout 肯定会涉及到AppBarLayoutCollapsingToolbarLayoutToolbar这几个控件,以上几个控件结合可以做到很炫的效果,不过本篇文章不会涉及,免得信息多了接受不过来。所以这篇文章就主要和FloatingActionButton控件放在一起展示已做初步了解,下篇在继续探讨AppBarLayout,CollapsingToolbarLayout等。

CoordinatorLayout(协调者布局)

CoordinatorLayout是在 Google IO/15 大会发布的,遵循Material 风格,包含在 support Library中,结合AppbarLayout, CollapsingToolbarLayout等 可 产生各种炫酷的效果

API里面是这样写的:

 <p>CoordinatorLayout is a super-powered FrameLayout.</p>
 <p>CoordinatorLayout is intended for two primary use cases:</p>
 <ol>
     <li>As a top-level application decor or chrome layout</li>
     <li>As a container for a specific interaction with one or more child views</li>
 </ol>

翻译过来意思是:
CoordinatorLayout适用于两种主要用途:

  • 作为顶级应用装饰或镶边布局
  • 作为与一个或多个子视图进行特定交互的容器

简单来说,CoordinatorLayout是用来协调其子view们之间动作的一个父view,而Behavior就是用来给CoordinatorLayout的子view们实现交互的。

FloatingActionButton(悬浮按钮)

FloatingActionButton是继承自ImageView的,所以对于这个控件我们可以使用ImageView的所有属性

<android.support.design.widget.FloatingActionButton
        android:id="@+id/floatingActionButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:src="@mipmap/ok"
        app:fabSize="normal"  
        app:borderWidth="0dp"
        app:backgroundTint="#FF4411"
        app:rippleColor="#336688ff"
        app:elevation="8dp"
        app:pressedTranslationZ="16dp"
        />

使用了app属性,则需要在根容器中添加这个属性

xmlns:app="http://schemas.android.com/apk/res-auto"
  • src - 设置FAB的图标,Google建议符合Design设计的该图标大小为24dp。
  • app:elevation - 默认状态下FAB的阴影大小。
  • app:pressedTranslationZ—-点击按钮时,按钮边缘阴影的宽度,通常设置比elevation的数值大
  • app:rippleColor - 设置FAB点击时的背景颜色。
  • app:backgroundTint—-按钮的背景颜色,不设置,默认使用theme中colorAccent的颜色
  • app:borderWidth -该属性尤为重要,如果不设置0dp,那么在4.1的sdk上FAB会显示为正方形,而且在5.0以后的sdk没有阴影效果。所以设置为borderWidth=”0dp”。
  • app:fabSize - 设置FAB的大小,该属性有两个值,分别为normal和mini,对应的FAB大小分别为56dp和40dp。
  • app:layout_anchor - 设置FAB的锚点,即以哪个控件为参照点设置位置。
  • app:layout_anchorGravity - 设置FAB相对锚点的位置,值有bottom、center、right、left、top等。

接下来,为 Activity 创建一个简单的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/floatingActionButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:layout_margin="16dp"
        android:src="@drawable/ic_done" />

</android.support.design.widget.CoordinatorLayout>

然后我们在 MainActivity中添加如下代码:

public class MainActivity extends AppCompatActivity {

  @Override  
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    findViewById(R.id.floatingActionButton).setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        Snackbar.make(view, "Hello Snackbar", Snackbar.LENGTH_LONG).show();
      }
    });
  }
}

这里写图片描述

到此最简单的CoordinatorLayout +FloatingActionButton+SnackBar用法就结束了,是不是很简单呀^_^。
接下来我们就要看看稍微复杂的AppBarLayout,CollapsingToolbarLayout,Toolbar等了。


为了向别人、向世界证明自己而努力拼搏,而一旦你真的取得了成绩,才会明白:人无须向别人证明什么,只要你能超越自己。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值