Ich arbeite an einer Anwendung und wir möchten die Größe unserer schwebenden Aktionstaste auf größeren Geräten erhöhen.

Das Problem ist, dass die schwebende Aktionsschaltfläche nur in zwei Größen erhältlich ist (mini und normal).

Zuerst habe ich versucht, ein benutzerdefiniertes android:layout_height und android:layout_height für meine Fab festzulegen, aber es hat nicht funktioniert. Nun, das gesamte Layout wurde tatsächlich größer, aber ein Rand erschien um die Fabrik und der Hintergrund war nicht vollständig transparent.

Verzweifelt nach einer Lösung habe ich meine eigene Kreisschaltflächenansicht erstellt und die schwebende Aktionsschaltfläche ersetzt. Das ist aber nicht gut genug. Ich werde nicht die coolen Ripple-Effekte oder alles andere haben, was eine Fab hat.

Danach habe ich angefangen, den Quellcode von Floating Action Button zu lesen, aber er wird sehr schnell komplex. Deshalb habe ich beschlossen, eine Pause einzulegen und meine Frage hier zu posten.

Weiß jemand, wie man eine schwebende Aktionstaste vergrößert?

EDIT 20/7/2016

Meine Frage ähnelt in der Tat dieser. Ich frage jedoch, wie man die Standardgröße von Button erhöht und nicht, wie man eine neue Größe hinzufügt.

3
TheCrafter 28 Dez. 2015 im 03:56

2 Antworten

Beste Antwort

Die Designbibliothek verwendet diese Parameter für das Fab:

<dimen name="design_fab_elevation">6dp</dimen>
<dimen name="design_fab_translation_z_pressed">6dp</dimen>
<dimen name="design_fab_content_size">24dp</dimen>
<dimen name="design_fab_size_normal">56dp</dimen>
<dimen name="design_fab_size_mini">40dp</dimen>
<dimen name="design_fab_border_width">0.5dp</dimen>

Ref

Wenn Sie Ihre eigene Fab verwenden möchten, können Sie die Design-Support-Bibliothek erweitern oder die gesamte Klasse kopieren und Ihre eigenen Dimensionen im Quellcode ersetzen, z. B. unter

final int getSizeDimension() {
    switch (mSize) {
        case SIZE_MINI:
            return getResources().getDimensionPixelSize(R.dimen.design_fab_size_mini);
        case SIZE_NORMAL:
        default:
            return getResources().getDimensionPixelSize(R.dimen.design_fab_size_normal);
    }
}

Ref

Stellen Sie jedoch sicher, dass Sie alles skalieren, damit sich das Seitenverhältnis nicht ändert.

8
user5703518user5703518 28 Dez. 2015 im 04:11

Wenn Sie eine schnelle Lösung wünschen, definieren Sie einfach eine Fab und verwenden Sie Code

float val = 1.3f;
fab.setScaleY(val);
fab.setScaleX(val);
3
Sergio Serra 13 Jän. 2017 im 15:16