浮動操作按鈕(floatingactionbutton)簡介及使用案例

浮動操作按鈕,英文名為FloatingActionButton(FAB),是一種用於現代應用界面設計的組件。它是由 Google Material Design 提出的一種設計理念,旨在提高用戶體驗和應用界面的美觀程度。本文將從以下幾個方面詳細介紹浮動操作按鈕的相關內容:

一、浮動操作按鈕的基本用途

浮動操作按鈕在應用中的基本用途是提供一種方便快捷的交互方式,通常被用於實現一些常見的操作按鈕,譬如:打電話、發郵件、分享、發布內容等。它和傳統的操作按鈕不同的是:浮動操作按鈕總是懸浮在應用界面的某個角落,而且它的背景色彩比其他部分更加醒目,因此在用戶界面中非常顯眼,可以引導用戶進行某些特定的操作。

二、浮動操作按鈕的實現方式

在 Android 平台上,開發者可通過使用 Support 庫中的 FloatingActionButton 組件實現浮動操作按鈕的效果。下面是一份簡單的 XML 布局文件,展示了浮動操作按鈕的基本實現方式:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/floatingActionButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:src="@drawable/ic_add"
    app:backgroundTint="@color/colorPrimary"
    app:fabSize="normal" />

其中,屬性 app:backgroundTint 設置浮動按鈕的背景色;app:fabSize 設置浮動按鈕的大小;android:src 設置浮動按鈕裡面的圖標;android:layout_gravity 設置浮動按鈕在布局中的位置(bottom|end 表示位於布局的右下角)。

三、浮動操作按鈕的使用場景

浮動操作按鈕常常被應用在需要強調操作的場景中,讓用戶直接進行交互,不用再每次都進入某個頁面的操作菜單里才能執行操作。比如在新聞應用中,當用戶閱讀一篇文章後,可以直接使用浮動操作按鈕分享該文章給社交媒體的好友;在個人資料頁面中,可以使用浮動操作按鈕來實現編輯用戶個人主頁的功能;在某些需要發表文章或評論的頁面中,可以使用浮動操作按鈕來快速發布新的內容。

四、浮動操作按鈕的推薦實踐

為了讓浮動操作按鈕更加符合用戶的使用體驗,有以下幾種推薦實踐:

1、讓浮動操作按鈕具有一定的懸浮感

為了讓浮動操作按鈕在應用界面中具有一定的懸浮感,可以將其邊緣設置為圓角,讓它看起來更像一個懸浮在空中的按鈕。

<android.support.design.widget.FloatingActionButton
    ...
    app:elevation="6dp"
    app:pressedTranslationZ="12dp"
    app:shapeAppearance="@style/FloatingButtonShape" />

<style name="FloatingButtonShape">
    <item name="cornerFamily">rounded
    <item name="cornerSize">50%
</style>

2、讓浮動操作按鈕的背景色更加顯眼

為了讓浮動操作按鈕在應用界面中更加顯眼,可以將其背景色設置成應用中使用較多的色調,如主色調或強調色調。

<android.support.design.widget.FloatingActionButton
    ...
    app:backgroundTint="@color/colorAccent"
    app:rippleColor="@color/colorAccentDark" />

3、讓浮動操作按鈕的交互體驗更加豐富

除了實現基本的點擊事件外,還可以讓浮動操作按鈕實現一些交互體驗更加豐富的功能,比如在用戶點擊按鈕時顯示菜單選項,或者在按鈕點擊後實現動畫效果等。

FloatActionButton floatingActionButton = findViewById(R.id.floatingActionButton);
floatingActionButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (isExpanded) {
            collapse();
        } else {
            expand();
        }
        isExpanded = !isExpanded;
    }
});

上述代碼實現了一個點擊浮動操作按鈕後,會彈出一些子菜單選項的樣例,具有一定的交互效果。

五、浮動操作按鈕的使用案例

下面是一個簡單的浮動操作按鈕的實現案例,請仔細查看代碼實現方式、布局和樣式設置:

public class MainActivity extends AppCompatActivity {

    private boolean isExpanded = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final LinearLayout layout1 = findViewById(R.id.layout1);
        final LinearLayout layout2 = findViewById(R.id.layout2);
        final LinearLayout layout3 = findViewById(R.id.layout3);

        FloatingActionButton floatingActionButton = findViewById(R.id.floatingActionButton);
        floatingActionButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isExpanded) {
                    collapse(layout1, layout2, layout3);
                } else {
                    expand(layout1, layout2, layout3);
                }
                isExpanded = !isExpanded;
            }
        });
    }

    private void expand(LinearLayout layout1, LinearLayout layout2, LinearLayout layout3) {
        animate(layout1, 0);
        animate(layout2, getResources().getDimensionPixelSize(R.dimen.standard_55));
        animate(layout3, getResources().getDimensionPixelSize(R.dimen.standard_105));
    }

    private void collapse(LinearLayout layout1, LinearLayout layout2, LinearLayout layout3) {
        animate(layout1, 0);
        animate(layout2, 0);
        animate(layout3, 0);
    }

    private void animate(LinearLayout layout, int translationY) {
        layout.animate().translationY(translationY).setInterpolator(new DecelerateInterpolator(2)).start();
    }
}

在布局文件中,我們需要使用 RelativeLayout 布局來放置三個 LinearLayout 並設置好這三個 LinearLayout 的初始位置。在代碼中,我們通過監聽浮動操作按鈕的點擊事件,實現了一個簡單的展開/收起動畫效果,在用戶快速點擊浮動操作按鈕時,三個 LinearLayout 會從按鈕下方分別展開或者收起。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/298110.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-28 12:17
下一篇 2024-12-28 12:17

相關推薦

  • Python數據統計案例的實現

    Python作為一個高級編程語言,擁有著豐富的數據處理庫和工具,能夠快速、高效地進行各類數據處理和分析。本文將結合實例,從多個方面詳細闡述Python數據統計的實現。 一、數據讀取…

    編程 2025-04-29
  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Java2D物理引擎簡介及應用

    本文將介紹Java2D物理引擎的基本概念、實現原理及應用案例,以及對應代碼示例。 一、物理引擎概述 物理引擎是一種計算機程序,用於模擬物理系統中的對象和其互動,如重力、碰撞、彈力等…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • Python磁碟操作全方位解析

    本篇文章將從多個方面對Python磁碟操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件許可權修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29
  • Python元祖操作用法介紹

    本文將從多個方面對Python元祖的操作進行詳細闡述。包括:元祖定義及初始化、元祖遍歷、元祖切片、元祖合併及比較、元祖解包等內容。 一、元祖定義及初始化 元祖在Python中屬於序…

    編程 2025-04-29
  • Python列表的讀寫操作

    本文將針對Python列表的讀取與寫入操作進行詳細的闡述,包括列表的基本操作、列表的增刪改查、列表切片、列表排序、列表反轉、列表拼接、列表複製等操作。 一、列表的基本操作 列表是P…

    編程 2025-04-29
  • 如何用Python對數據進行離散化操作

    數據離散化是指將連續的數據轉化為離散的數據,一般是用於數據挖掘和數據分析中,可以幫助我們更好的理解數據,從而更好地進行決策和分析。Python作為一種高效的編程語言,在數據處理和分…

    編程 2025-04-29

發表回復

登錄後才能評論