浮动操作按钮(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/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

发表回复

登录后才能评论