1

Ich verwende FloatingActionButton von Support-Bibliothek. Ich habe bemerkt, dass die Größe nur im XML geändert werden kann, indem das Attribut app: fab_size = "" verwendet wird.Kann die FloatingActionButton-Größe zur Laufzeit programmatisch geändert werden?

Ich schaute auf den Quellcode und es gibt keine Methoden, die es erlauben würden, die Größe der Fab zu ändern, wenn die App läuft.

Ich will einfach fab Größe zwischen MINI und NORMAL auf der Benutzereingabe basiert ändern, also muss ich es programmatisch tun.

Hat jemand einen Weg gefunden, dies schon zu tun?

Antwort

1

Es ist nicht möglich. Die Größe wird bei der Erstellung der FloatingActionButton festgelegt und bleibt während ihres Lebenszyklus statisch. Es gibt keine öffentlichen Methoden, mit denen die Größe dynamisch geändert werden kann. Natürlich könnten Sie java reflection verwenden, um auf private Felder size und padding zuzugreifen und sie zu ändern, aber das ist not a good Idee. Alternativ können Sie einen Blick auf einige 3rd-Party-Implementierung, die ermöglicht, die Größe der Schaltfläche dynamisch ändern, diese one zum Beispiel

4

Ich denke, FloatingActionButtonsetSize() Methode macht was Sie wollen. Wenn Sie einen FloatingActionButton haben, der fab genannt wird, können Sie verwenden:

fab.setSize(FloatingActionButton.SIZE_MINI); 
fab.setSize(FloatingActionButton.SIZE_NORMAL);