Android floating action button

A FloatingActionButton displays the primary action in an application. It is a round icon button that’s elevated above other page content. Floating action buttons come in a default and mini size.

Floating action buttons provide quick access to important or common actions within an app. They have a variety of uses, including:

  • Performing a common action, such as starting a new email in a mail app.
  • Displaying additional related actions.
  • Update or transforming into other UI elements on the screen.

Floating action buttons adjust their position and visibility in response to other UI elements on the screen.

Design & API Documentation

Usage

The FloatingActionButton widget provides a complete implementation of Material Design’s floating action button component. Here’s how to include the widget in your layout:

Note: If the FloatingActionButton is a child of a CoordinatorLayout , you get certain behaviors for free. It will automatically shift so that any displayed Snackbars do not cover it, and will automatially hide when covered by an AppBarLayout or BottomSheetBehavior.

Material Styles

Using FloatingActionButton with an updated Material theme ( Theme.MaterialComponents ) will provide the correct updated Material styles to your floating action buttons by default. If you need to use an updated Material floating action button and your application theme does not inherit from an updated Material theme, you can apply one of the updated Material styles directly to your widget in XML.

Читайте также:  Как выложить видео на youtube с компьютера

Updated Material Style

The updated Material FloatingActionButton style consists of updated elevation, ripple, and motion changes.

Legacy Material Style

Attributes

Feature Relevant attributes
Icon app:srcCompat
app:tint
app:maxImageSize
Size app:fabSize
app:fabCustomSize
Background app:backgroundTint
Ripple app:rippleColor
Border app:borderWidth
Elevation app:elevation
app:hoveredFocusedTranslationZ
app:pressedTranslationZ
Motion app:showMotionSpec
app:hideMotionSpec

Theme Attribute Mapping

Updated Material Style

Component Attribute Default Theme Attribute Value
backgroundTint colorSecondary
tint colorOnSecondary
rippleColor colorOnSecondary

Legacy Material Style

The legacy Material style of FloatingActionButton does not make use of our new color theming attributes.

Handling Clicks

FloatingActionButton handles clicks in the same way as all views:

Visibility

Use the show and hide methods to animate the visibility of a FloatingActionButton . The show animation grows the widget and fades it in, while the hide animation shrinks the widget and fades it out.

Sizing

The FloatingActionButton can be sized either by using the discrete sizing modes or a totally custom size.

Sizing Modes

The supported sizing modes are as follows:

  • normal — the normal sized button, 56dp.
  • mini — the mini sized button, 40dp.
  • auto — the button size will change based on the window size. For small sized windows (largest screen dimension auto , but this can be adjusted via the app:fabSize attribute or the FloatingActionButton#setSize method.
Custom Size

To set a custom size for your FloatingActionButton , you can use the app:fabCustomSize attribute or the FloatingActionButton#setCustomSize method.

If you’ve set a custom size and would like to clear it, you can call the FloatingActionButton#clearCustomSize method. If called, custom sizing will not be used and the size will be calculated based on the value set using FloatingActionButton#setSize or the app:fabSize attribute.

Читайте также:  Как оформлять документы в ворде по госту

Related Concepts

Material design is an adaptable system—backed by open-source code—guiding you in the principles and best practices of contemporary UI. Material helps teams streamline the designer-developer collaboration, reduce complexity, and enable fidelity through reusable components, patterns, and code libraries. All while adapting easily to your brand, platform, and users’ needs.

I guess you have seen the new Android design guidelines, with the new "Floating Action Button" a.k.a "FAB"

For instance this pink button:

My question sounds stupid, and I have already tried a lot of things, but what is the best way to put this button at the intersection of two layouts?

In the above exemple, this button is perfectly placed between what we can imagine to be an ImageView and a relativeLayout.

I have already tried a lot of tweaks, but I am convinced there is a proper way to do it.

В этом уроке мы научимся интегрировать виджет FloatingActionButton в наше приложение на Android.

Краткий обзор виджета FloatingActionButton

Новый компонент FloatingActionButton появился в Android вместе с библиотекой Материального дизайна. Он используется для того, чтобы наиболее важные функции вашего приложения всегда были видны и доступны на экране в один тап (клик). Также виджет FloatingActionButton часто используется в паре со SnackBar.

Интеграция FloatingActionButton в приложение

Так как FloatingActionButton является частью библиотеки материального дизайна, то добавлять в зависимости приложения нужно именно ее. В файле build.gradle (Module: app) добавьте следующую строку в секции dependencies :

Версия в вашем приложении может отличаться, поэтому если среда разработки будет ругаться, попробуйте написать так:

А Android Studio уже сама подскажет вам нужную версию.

Сам FloatingActionButton виджет выглядит следующим образом:

Читайте также:  Dump log что это

Важные моменты:

  • FloatingActionButton является наследником класса ImageView. Атрибут android:src дает нам сразу это понять.
  • Обратите внимание на атрибут app:elevation , который используется для указания возвышения виджета над основным макетом с отбрасыванием тени при нажатии с помощью атрибута app:pressedTranslationZ .

Компоновка виджета FloatingActionButton

FloatingActionButton используется в макете CoordinatorLayout . Макет CoordinatorLayout дает гибкость в настройке и помогает быстро наладить взаимодействие между дочерними view .

Обратите внимание: желательно всегда использовать последние версии Android Studio и средств сборки проекта, иначе в определенный момент может появиться неприятная ошибка при сборке проекта.

Если вы используете последние версии среды разработки и средств сборки, то Android Studio сама интегрирует FloatingActionButton в приложение при создании проекта. Для этого создайте новый проект, как показано здесь, только вместо Empty Activity используйте Blank Activity:

После сборки проекта в папке /res/layout вы увидите 2 файла: