7

Ho un CoordinatroLayout con FloatingActionButton. Ecco il mio codice:FAB con ancoraggio nel layout coordinatore ha margine aggiuntivo in Android pre-lollipop

<android.support.design.widget.CoordinatorLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/toolbar_layout" 
     android:layout_above="@+id/actionbar"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 

      <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="120dp" 
       android:minHeight="?android:attr/actionBarSize" 
       android:background="@color/toolbar_color" /> 


      <ScrollView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 

       > 

      </ScrollView> 


     </LinearLayout> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 

      android:clickable="true" 
      app:fabSize="mini" 
      android:src="@mipmap/ic_action_edit" 
      app:layout_anchor="@id/toolbar" 
      app:layout_anchorGravity="bottom|right|end" 
      app:backgroundTint="@color/toolbar_color"   /> 
     </android.support.design.widget.CoordinatorLayout> 

Ma sembra diverso in dispositivi di lecca-lecca e pre-lecca-lecca.

Lollipop:

enter image description here

Pre-Lollipop: enter image description here

In realtà non ho aggiungere qualsiasi margine. Ma FAB ha margini nei dispositivi pre-lecca-lecca.

Ho anche visto questo problema nell'esempio cheessesquare. Mostra anche diversi margini. Qual è il problema?

+0

Cosa succede quando aggiungi margini? raddoppia lo spazio nel pre-lecca-lecca? –

+2

è possibile che questo post sia utile [http: // stackoverflow.com/domande/30687888/problemi di Android-design-biblioteca-floating-azione-button-padding-margin-] (http://stackoverflow.com/questions/30687888/android-design-library-floating-action-button-padding -margin-issues) – DmitryArc

+0

@JudeFernandes Sì, raddoppia lo spazio nel pre-lecca-lecca. –

risposta

14

non penso si desidera posizionare loro senza margini. Se ho capito bene, hai fatto questo per vedere che cosa sta succedendo in diverse versioni di Android.

È possibile utilizzare app:useCompatPadding="true" e rimuovere i margini personalizzati per mantenere stessi margini tra le diverse versioni di Android

android studio code

Proof of concept

design view

+0

Non ho ancora idea perché nessuna altra risposta ha descritto la stessa cosa. Ho avuto lo stesso problema, e ora è fisso :) –

+0

Grazie! Ho cambiato la risposta selezionata. –

+0

non funziona per me in layout lineare: / –

5

Secondo this link, sembra un errore nella libreria di progettazione Android. Si dice che:

in API < 20, il pulsante rende la propria ombra, che aggiunge alla larghezza logica complessiva della vista, mentre in API> = 20 utilizza i nuovi parametri elevazione che don' t contribuire alla larghezza della vista.

quindi devo fornire due file di risorse per margine:

res/valori:

<dimen name= "fab_margin_right">0dp</dimen> 

E in res/valori-V21:

<dimen name = "fab_margin_right">8dp</dimen> 
4

Dal 22.2. 1 versione di supporto e libreria di progettazione, la risposta precedente non è più vera. Non c'è riempimento extra se FAB è all'interno di CoordinatorLayout.

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/button_show_qr" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end|bottom" 
     android:src="@mipmap/ic_action_edit" 
     app:backgroundTint="@color/primary" 
     app:borderWidth="0dp" 
     app:elevation="4dp" 
     app:fabSize="normal" 
     app:rippleColor="@color/primary_dark"/> 
</android.support.design.widget.CoordinatorLayout> 

Questo codice produrrà il seguente FAB su ogni versione Android.

enter image description here

+3

Grazie, ma stavo usando la libreria di supporto 23.0.0 quando ho affrontato il problema. –

+0

ma c'è se è in un altro layout come lineare ed ecc .:/ android è sciocco e un insulto agli sviluppatori –

Problemi correlati