Как создать плавающий кнопку действия ( FAB) в Android, используя AppCompat V21 ?

? Salvuccio96 @ | Original: StackOverFlow

Я хотел бы создать плавающую кнопку действия ( для добавления элементов в виде списка ), как и Google Calendar, сохраняя при этом совместимость с предварительно леденец версий Android ( до 5,0 ) .

Я создал этот макет :

Деятельность main_activity.xml :

<LinearLayout ... >

     <include
         layout="@layout/toolbar"/>

     <RelativeLayout ... >

     <!-- My rest of the layout -->

          <!-- Floating action button -->
          <ImageButton style="@style/AppTheme"
                     android:layout_width="60dp"
                     android:layout_height="60dp"
                     android:text="New Button"
                     android:id="@+id/button"
                     android:src="@drawable/ic_fab"
                     android:background="@drawable/fab"
                     android:layout_alignParentBottom="true"
                     android:layout_alignParentRight="true"
                     android:layout_marginBottom="24dp"
                     android:layout_marginRight="24dp"/>

     </RelativeLayout>

 </LinearLayout>

Drawable fab.xml :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="oval">
    <solid android:color="#ffa48bc0"/>
</shape>

Стиль styles.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#ff1d79b1</item>
        <item name="colorPrimaryDark">#ff084d95</item>
    </style>
</resources>

Результат аналогичен, но незатенения ,характеристика материала конструкции :

Calendar плавающий кнопку действия :

Как создать плавающий кнопку действия ( FAB) в Android, используя AppCompat V21 ?

Плавающей кнопкой действия моего приложения в :

Как создать плавающий кнопку действия ( FAB) в Android, используя AppCompat V21 ?

Как я могу добавить затенение к моему кнопки?

Я уже использовал высоту атрибута, но не работает



Top 5 Respuesta

1user3249477 @

Добавить отступы и высоту :

 android:elevation="10dp"
 android:padding="10dp"


2Oleksii Kropachov @

Попробуйте https://github.com/shamanland/floating-action-button, он поддерживает тень, есть minSdkVersion=7, а также поддерживает атрибут android:elevation для API-21 неявно.

Оригинал сообщения находится http://stackoverflow.com/a/25739038/1891118 .

3QAMAR @

Естькуча библиотек там добавить FAB ( Floating кнопку Действие ) А в вашем приложении, вот некоторые из них я знаю.

https://github.com/makovkastar/FloatingActionButton

https://github.com/futuresimple/android-floating-action-button

https://github.com/navasmdc/MaterialDesignLibrary

Все эти библиотеки поддерживаются на заранее леденец устройств, минимум, чтобы API 8

4Justin Pollard @

Я обычно используется XML и вводимого коэффициента создать тень / высота по заранее леденец виджета. Здесь, например,XML- холст, который может быть использован на предварительно леденцов устройств для имитации высоты в кнопки плавающего Действие в .

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="8px">
    <layer-list>
        <item>
            <shape android:shape="oval">
                <solid android:color="#08000000"/>
                <padding
                    android:bottom="3px"
                    android:left="3px"
                    android:right="3px"
                    android:top="3px"
                    />
            </shape>
        </item>
        <item>
            <shape android:shape="oval">
                <solid android:color="#09000000"/>
                <padding
                    android:bottom="2px"
                    android:left="2px"
                    android:right="2px"
                    android:top="2px"
                    />
            </shape>
        </item>
        <item>
            <shape android:shape="oval">
                <solid android:color="#10000000"/>
                <padding
                    android:bottom="2px"
                    android:left="2px"
                    android:right="2px"
                    android:top="2px"
                    />
            </shape>
        </item>
        <item>
            <shape android:shape="oval">
                <solid android:color="#11000000"/>
                <padding
                    android:bottom="1px"
                    android:left="1px"
                    android:right="1px"
                    android:top="1px"
                    />
            </shape>
        </item>
        <item>
            <shape android:shape="oval">
                <solid android:color="#12000000"/>
                <padding
                    android:bottom="1px"
                    android:left="1px"
                    android:right="1px"
                    android:top="1px"
                    />
            </shape>
        </item>
        <item>
            <shape android:shape="oval">
                <solid android:color="#13000000"/>
                <padding
                    android:bottom="1px"
                    android:left="1px"
                    android:right="1px"
                    android:top="1px"
                    />
            </shape>
        </item>
        <item>
            <shape android:shape="oval">
                <solid android:color="#14000000"/>
                <padding
                    android:bottom="1px"
                    android:left="1px"
                    android:right="1px"
                    android:top="1px"
                    />
            </shape>
        </item>
        <item>
            <shape android:shape="oval">
                <solid android:color="#15000000"/>
                <padding
                    android:bottom="1px"
                    android:left="1px"
                    android:right="1px"
                    android:top="1px"
                    />
            </shape>
        </item>
        <item>
            <shape android:shape="oval">
                <solid android:color="#16000000"/>
                <padding
                    android:bottom="1px"
                    android:left="1px"
                    android:right="1px"
                    android:top="1px"
                    />
            </shape>
        </item>
        <item>
            <shape android:shape="oval">
                <solid android:color="#17000000"/>
                <padding
                    android:bottom="1px"
                    android:left="1px"
                    android:right="1px"
                    android:top="1px"
                    />
            </shape>
        </item>
    </layer-list>
</item>
<item>
    <shape android:shape="oval">
        <solid android:color="?attr/colorPrimary"/>
    </shape>
</item>
</layer-list>

На месте ?attr/colorPrimary вы можете выбрать любой цвет. Вотскриншот результата:

Как создать плавающий кнопку действия ( FAB) в Android, используя AppCompat V21 ?

5Shell Software @

Вот один услуги для покупателей бесплатно https://github.com/shell-software/fab Она имеет много настроек и требует SDK версии 9 и выше

Как создать плавающий кнопку действия ( FAB) в Android, используя AppCompat V21 ?

https://www.youtube.com/watch?v=skSApXvi4xM