Material Design相关知识点(三)之Snackbar与FloatingActionButton

Material Design相关知识点(三)之Snackbar与FloatingActionButton

本文所要实现的效果

在这里插入图片描述

Snackbar组件

Snackbar组件根Toast类似,会土司,但是呢,又和Toast不一样,Snackbar组件可以土司,而且可以有土司出来按钮,并对按钮进行事件的绑定。

下面我们就来看看例子吧

首先布局文件很简单,一个button,按钮

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main1Activity">

    <Button
        android:id="@+id/button"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Snackbar按钮"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

下面就是点击button实现点击事件,弹出Snackbar了。
很简单,就是和Toast相识,但是需要注意的是,Snackbar用的是make方法,同时里面的第一个参数是View view,而Toast用的是makeText方法,而Toast是Context context

在Snackbar可以通过setAction来设置Snackbar里面的点击按钮,并实现相应的点击操作。本例就Toast了一下。最后和Toast一样,也要show一下(秀一秀更健康)


public class Main1Activity extends AppCompatActivity {
    
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main1);
        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View view) {
    
    
                Snackbar.make(view,"你使用的是Snackbar组件",Snackbar.LENGTH_SHORT)
                        .setAction("确定", new View.OnClickListener() {
    
    
                            @Override
                            public void onClick(View view) {
    
    
                               Toast.makeText(Main1Activity.this,"你点击了Snackbar",Toast.LENGTH_SHORT).show();
                            }
                        }).show();
            }
        });
    }
}

FloatingActionButton悬浮按钮

这个布局关注点在FloatingActionButton他也是一个按钮,只不过是悬浮与页面之上的。android:src来实现该按钮的图片路径,android:layout_gravity="bottom|right"/>来实现让悬浮按钮在右下角展示

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main2Activity">
<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:src="@drawable/ic_add_black_24dp"
        android:layout_gravity="bottom|right"/>

</FrameLayout>
</LinearLayout>
这里根Button没有什么区别,也是先找控件,然后设置其点击事件。

public class Main2Activity extends AppCompatActivity {
    
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        FloatingActionButton floatingActionButton=findViewById(R.id.fab);
        floatingActionButton.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View view) {
    
    
                Snackbar.make(view,"你使用的是Snackbar组件",Snackbar.LENGTH_SHORT)
                        .setAction("确定", new View.OnClickListener() {
    
    
                            @Override
                            public void onClick(View view) {
    
    
                                Intent i = new Intent(Main2Activity.this,Main3Activity.class);
                                startActivity(i);
                            }
                        }).show();
            }
        });
    }
}

项目地址

Snackbar与FloatingActionButton

猜你喜欢

转载自blog.csdn.net/qq_45353823/article/details/107827016