Как скопировать кнопку плавающего действия "Входящие" (с текстом для каждой дополнительной кнопки)?
Мне просто интересно, есть ли у кого-нибудь идеи о том, как воспроизвести представление плавающей кнопки действий, которое новое приложение Inbox имеет для Android? У меня работают плавающие кнопки действий (с суб-кнопками), работающие с модифицированной версией этой библиотеки: https://github.com/futuresimple/android-floating-action-button/blob/master/README.md
Однако у меня возникают проблемы при попытке получить текстовое представление рядом с кнопкой, как в приложении "Входящие".
Если бы кто-то мог предложить мне предложение о том, как мне изменить библиотеку, чтобы приспособиться к этому или любому другому способу ее достижения, я был бы очень признателен.
Спасибо за ваше время Кори
2 ответа
Поскольку функция Labels FAB (как в приложениях Evernote или Inbox) была добавлена в эту удивительную библиотеку, не стесняйтесь ее использовать:
Gradle зависимость:
compile 'com.getbase:floatingactionbutton:1.3.0'
layout.xml:
<com.getbase.floatingactionbutton.FloatingActionsMenu
android:id="@+id/multiple_actions"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
fab:fab_addButtonColorNormal="@color/white"
fab:fab_addButtonColorPressed="@color/white_pressed"
fab:fab_addButtonPlusIconColor="@color/half_black"
fab:fab_labelStyle="@style/menu_labels_style"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp">
<com.getbase.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fab:fab_colorNormal="@color/white"
fab:fab_title="Action A"
fab:fab_colorPressed="@color/white_pressed"/>
<com.getbase.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fab:fab_colorNormal="@color/white"
fab:fab_title="Action B"
fab:fab_colorPressed="@color/white_pressed"/>
</com.getbase.floatingactionbutton.FloatingActionsMenu>
menu_labels_style.xml:
<style name="menu_labels_style">
<item name="android:background">@drawable/fab_label_background</item>
<item name="android:textColor">@color/white</item>
</style>
fab_label_background.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/black_semi_transparent"/>
<padding
android:left="16dp"
android:top="4dp"
android:right="16dp"
android:bottom="4dp"/>
<corners
android:radius="2dp"/>
</shape>
Наслаждайтесь!
FloatinActionsMenu
является ViewGroup
он может принять любую точку зрения.
Создать макет как:
<FloatingActionsMenu
android:layout_height="wrap_content"
android:layout_width="wrap_content"
>
<RelativeView
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/floating_description_1"/>
<FloatingActionButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
//....
</RelativeLayout>
<RelativeView
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/floating_description_2"/>
<FloatingActionButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
//....
</RelativeLayout>
</FloatingActionsMenu>
Стиль TextView
как ваше сердце желает, фоны, цвет текста и т. д.
Обратите внимание, что сначала FloatingActionButton
будет смещен до размера дочернего представления, имеющего наибольшую ширину. Вы должны переместить его на наибольшую дочернюю ширину - ширину первой плавающей кнопки.
Если вы хотите добавить TextView
также к этому FloatingAction, получить его по id R.id.fab_expand_menu
, или же .getChildAt(0)
, оберните его программно, как если бы вы делали это в XML, и установите его, используя addView(0, wrapped)
Я планирую раскошелиться, если по случайности у меня будет время починить это. Выложу ссылку на форк.