Die Materialdesign-Dokumentation enthält ein Beispiel von Google Maps, das zwei schwebende Aktionsschaltflächen nebeneinander (eigentlich übereinander) zeigt.
Wie wird das gemacht? Ich habe zwei FABs in einem Koordinator-Layout, aber sie landen übereinander, sodass Sie nur eine Schaltfläche sehen.
Können Sie den Code geben, den Sie bereits haben? Das erleichtert es uns, Ihnen zu helfen.
– ndsmyter
3. Juli 2015 um 11:27 Uhr
Poste mal den getesteten Code
– Fouad Wahabi
3. Juli 2015 um 11:27 Uhr
Ich habe nicht mit gespielt CoordinatorLayout noch, aber gibt es einen Grund, warum Sie Ihre beiden FABs nicht in einen packen würden? LinearLayoutdie Art und Weise, wie Sie die anderen Sachen in ihre eigenen gewickelt haben LinearLayout?
– CommonsWare
3. Juli 2015 um 11:42 Uhr
@CommonsWare Als ich das erste Mal versuchte, konnte ich die FABs überhaupt nicht sehen. Ich habe seitdem die Höheneigenschaft entdeckt und die Anwendung auf das Layout scheint zu funktionieren. Ich mische das mit der Antwort von PageNotFound, um den richtigen Abstand zwischen den Schaltflächen zu erhalten. Vielen Dank.
– Jon
3. Juli 2015 um 11:49 Uhr
Es ist eine Kombination aus Layout-Schwerkraft und Anker-Schwerkraft zusammen mit dem Spielen mit den Rändern (des verankerten Elements), die es zum Laufen bringen können. Schauen Sie sich die folgende XML an, die ich erfolgreich verwendet habe:
Ich bekomme kein Leerzeichen zwischen die beiden Tasten. Sie kleben zusammen
– Jyotman Singh
13. April 2016 um 7:53 Uhr
@JyotmanSingh versuchen Sie, den unteren Rand einzustellen – z android:layout_marginBottom="85dp"
– smukow
17. Juli 2016 um 17:07 Uhr
Genial! Vielen Dank
– Achmedzianov Danilian
28. Januar 2018 um 0:59 Uhr
Ich konnte keine richtige Polsterung zwischen den beiden fabelhaften Schaltflächen hinzufügen, aber ich konnte sie ein wenig “hacken”, indem ich Folgendes verwendete: android:translationY="-16dp"
– Logo
23. Juni 2020 um 9:53 Uhr
Versuchen Sie, dies zu verwenden app:useCompatPadding="true"
Dies sollte die richtige Antwort sein, es funktioniert auch ohne relative Layouts und mit Animationen perfekt. Danke Juan
– Sebastian Korradi
21. Dezember 2016 um 13:38 Uhr
Was sind bottomSheet und fabSearch hier?
– Aritz
28. Dezember 2017 um 9:00 Uhr
@XtremeBiker der Beitrag spricht nur über zwei fabelhafte Knöpfe
– Juan Labrador
28. Dezember 2017 um 12:00 Uhr
Hat für mich funktioniert. Da ich bei meiner Hauptaktivität ein DrawerLayout verwendet habe, musste ich das CoordinatorLayout als untergeordnetes Element des DrawerLayout platzieren. Die schwebenden Schaltflächen wären untergeordnete Elemente des CoordinatorLayout.
– keshav.bahadoor
13. März 2018 um 2:11 Uhr
Nathanael
Hier ist meine Lösung, platziere einfach ein unsichtbares FAB zwischen den beiden Fabs und funktioniert gut mit CoordinatorLayout.
Funktioniert bei mir auch.. Nur Ränder hinzufügen und alles funktioniert nicht beim Ankern..
– Neela
26. Oktober 2016 um 5:54 Uhr
Funktioniert bei mir auch. Ich verwende eine -Ansicht, um die Fabs zu trennen, und daher ist es aus meiner Sicht keine seltsame Lösung mehr. Sollte die akzeptierte Antwort sein, da sie das Ankerkonzept richtig nutzt, ohne das Layout mit Rändern auszutricksen.
– Mx
8. Juni 2017 um 20:22 Uhr
Funktioniert nicht bei Änderung der Geräteausrichtung (das zweite Fab verschwindet)
– Sagismus
20. Juni 2018 um 19:22 Uhr
Ich kann nicht glauben, dass niemand die richtige Antwort gepostet hat.
Wickeln Sie die Knöpfe in a ViewGroup und wende die an dodgeInsetEdges Layout-Parameter, sodass die Schaltflächen mit dem unteren Blatt nach oben rücken. Für den obigen Anwendungsfall können wir a verwenden LinearLayout mit dem XML-Attribut app:layout_dodgeInsetEdges="bottom".
Beachten Sie, dass wir dies anwenden können irgendein Ansicht in a CoordinatorLayout.
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" ... >
<!-- We can use any ViewGroup here. LinearLayout is the
obvious choice for the questioner's use case. -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:orientation="vertical"
app:layout_dodgeInsetEdges="bottom">
<android.support.design.widget.FloatingActionButton
android:id="@+id/upperFab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/fab_margin"
android:src="https://stackoverflow.com/questions/31205720/@drawable/upper_fab_icon" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/lowerFab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lower_fab_icon" />
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
Das funktioniert für mich – FABs sind in Relative Layout eingebettet:
Diese Lösung funktioniert (dh der Abstand bleibt erhalten), selbst wenn die Größe des Fensters aufgrund des Öffnens des Eingabefelds geändert wird. Bei anderen Lösungen geht der Abstand verloren.
das ist Arbeit für mich. Der Schlüsselcode ist android:layout_margin=”65dp”
Diese Lösung funktioniert (dh der Abstand bleibt erhalten), selbst wenn die Größe des Fensters aufgrund des Öffnens des Eingabefelds geändert wird. Bei anderen Lösungen geht der Abstand verloren.
– hfann
30. Januar 2018 um 23:37 Uhr
Shn_Android_Dev
Eine sehr einfache Möglichkeit (das hat bei mir funktioniert!) bestand darin, die beiden schwebenden Schaltflächen einfach in einem vertikalen linearen Layout am unteren / Ende des übergeordneten Elements zu platzieren.
Können Sie den Code geben, den Sie bereits haben? Das erleichtert es uns, Ihnen zu helfen.
– ndsmyter
3. Juli 2015 um 11:27 Uhr
Poste mal den getesteten Code
– Fouad Wahabi
3. Juli 2015 um 11:27 Uhr
Ich habe nicht mit gespielt
CoordinatorLayout
noch, aber gibt es einen Grund, warum Sie Ihre beiden FABs nicht in einen packen würden?LinearLayout
die Art und Weise, wie Sie die anderen Sachen in ihre eigenen gewickelt habenLinearLayout
?– CommonsWare
3. Juli 2015 um 11:42 Uhr
@CommonsWare Als ich das erste Mal versuchte, konnte ich die FABs überhaupt nicht sehen. Ich habe seitdem die Höheneigenschaft entdeckt und die Anwendung auf das Layout scheint zu funktionieren. Ich mische das mit der Antwort von PageNotFound, um den richtigen Abstand zwischen den Schaltflächen zu erhalten. Vielen Dank.
– Jon
3. Juli 2015 um 11:49 Uhr