浮动操作按钮,英文名为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 会从按钮下方分别展开或者收起。