Wie schreibt man einen schwimmenden Aktionstaste (FAB) in Android zu erstellen, mit AppCompat v21 ?

? Salvuccio96 @ | Original: StackOverFlow

Ich möchte einen schwimmenden Aktionsschaltfläche erstellen ( um einen Artikel in einer Listenansicht hinzufügen ), wie Google Kalender, die Kompatibilität mit bereits Lutscher Android-Versionen (vor 5.0) .

Ich habe dieses Layout :

Aktivität 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>

Stil styles.xml

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

Das Ergebnis ist ähnlich, aber es ist nicht die Schattierung, ein Merkmal der Materialkonstruktion:

SchwimmaktionstasteKalenders :

Wie schreibt man einen schwimmenden Aktionstaste (FAB) in Android zu erstellen, mit AppCompat v21 ?

SchwimmaktionstasteMeine App:

Wie schreibt man einen schwimmenden Aktionstaste (FAB) in Android zu erstellen, mit AppCompat v21 ?

Wie kann ich die Schattierung meine Taste ?

Ich habe bereits verwendet das Attribut Höhe, aber nicht funktioniert

Top 5 Antwort

1user3249477 @

Fügen Polsterung und Höhenunterschied:

 android:elevation="10dp"
 android:padding="10dp"
2Oleksii Kropachov @

Versuchen https://github.com/shamanland/floating-action-button unterstützt es Schatten gibt es minSdkVersion=7 und unterstützt auch android:elevation Attribut für API-21 implizit .

Original-Beitrag ist http://stackoverflow.com/a/25739038/1891118 .

3QAMAR @

Es gibt eine Reihe von Bibliotheken gibt fügen Sie ein FAB ( Floating Action Button) in Ihrer Anwendung, Hier sind einige von ihnen, ich weiß.

https://github.com/makovkastar/FloatingActionButton

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

https://github.com/navasmdc/MaterialDesignLibrary

Alle diese Bibliotheken auf Pre- Lutscher -Geräte, Mindest zu api 8 unterstützt

4Justin Pollard @

Ich habe in der Regel XML drawables verwendet werden, um Schatten / Höhe auf einem bereits Lutscher Widget erstellen. Hier zum Beispiel, ist ein XML- Zeichenfläche, die sich auf Pre- Lutscher -Geräten genutzt werden kann, um Höhe der schwimmenden Aktionstaste simulieren .

<?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>

An die Stelle der ?attr/colorPrimary Sie können jede Farbe wählen . Hier ist ein Screenshot des Ergebnisses :

Wie schreibt man einen schwimmenden Aktionstaste (FAB) in Android zu erstellen, mit AppCompat v21 ?

5Shell Software @

Hier ist eine aditional kostenlos https://github.com/shell-software/fab Es hat viele Anpassungen und erfordert SDK Version 9 und höher

Wie schreibt man einen schwimmenden Aktionstaste (FAB) in Android zu erstellen, mit AppCompat v21 ?

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