AndroidMaterial Design

Material Design系列教程(2) - Floatin

2018-06-13  本文已影响117人  Whyn

简介

FloatingActionButton:悬浮按钮。

首先看下其文档:

FloatingActionButton

FloatingActionButton 是一个 ImageButton,其包名为android.support.design.widget.FloatingActionButton,所以它是存在于design 包中的,不是在 v7 包,所以要导入design包:

implementation 'com.android.support:design:<version>'

FloatingActionButton 代表一个页面中最主要的操作,其位于 UI 最顶层(悬浮)。

FAB 通常有两种尺寸:

FAB 间接继承于 ImageView,因此你可以控制由 setImageDrawable(Drawable) 设置的 icon。

FAB 的背景颜色默认为主题的colorAccent,如果你想在程序运行时进行控制,可以通过 setBackgroundTintList(ColorStateList)

FAB的 XMl 属性除了继承自View,ImageView的属性外,Android 5.0后引入的常用新属性如下:

注1: 使用上述属性前,先要引入命名空间:

xmlns:app="http://schemas.android.com/apk/res-auto"

注2: 在 Android 5.x 中 FAB 存在的一些问题:

综上,FAB 健壮的布局为:增加如下两行配置

app:borderWidth="0dp"
android:layout_margin="20dp"

示例

下面介绍下 FloatingActionButton 最基础的使用示例:

  1. 首先在布局文件中添加 FAB:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_margin="20dp"
        android:src="@drawable/emoticon"
        app:borderWidth="0dp" />

</RelativeLayout>
  1. Activity中添加单击事件:
public class FloatingActionButtonActivity extends AppCompatActivity {

    private FloatingActionButton mFab;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fat);
        this.mFab = this.findViewById(R.id.fab);
        this.mFab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(FloatingActionButtonActivity.this, "FAB clicked!!", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

效果:

FAB

其实,FAB 配合着其他控件,能够做出一些非常炫酷的交互动画效果,不过本节就先不深入下去了。

上一篇 下一篇

猜你喜欢

热点阅读