Как скопировать кнопку плавающего действия "Входящие" (с текстом для каждой дополнительной кнопки)?

Мне просто интересно, есть ли у кого-нибудь идеи о том, как воспроизвести представление плавающей кнопки действий, которое новое приложение 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)

Я планирую раскошелиться, если по случайности у меня будет время починить это. Выложу ссылку на форк.

Другие вопросы по тегам