2016-02-25 5 views
6

Próbuję wyświetlić widok tekstowy u góry pływającego przycisku akcji. Wewnątrz FrameLayout, mam 1 Fab i 1 TextView:Ruchomy przycisk akcji zawsze wyświetla się na wierzchu

<FrameLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|start" 
    android:padding="@dimen/fab_margin"> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fabAddSeller" 
     android:layout_width="70dp" 
     android:layout_height="70dp" 
     app:backgroundTint="#3780f4" 
     android:stateListAnimator="@null"/> 

    <TextView 
     android:id="@+id/tvSellRecordCount" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/sell_record_counter" 
     android:layout_gravity="top|end" 
     android:text="12" 
     android:textColor="#FFFFFF" 
     android:textSize="10sp" /> 

</FrameLayout> 

Według tego answer, dodałem

android: stateListAnimator = "@ null"

do FAB - brak różnica. Umieściłem TextView po FAB - bez efektu.

enter image description here

Jak pokazują inny pogląd na górze FloatingActionButton?

+0

sprawdzić ten http: //stackoverflow.com/questions/24459352/how-can-i-add-the-new-floating-actio Układ n-button-between-two-widgets – Stallion

+1

elewacja jest opcją? Nie jestem pewien, który jest twój minSdk – W0rmH0le

+1

Użyj RelativeLayout !! spróbuj ustawić właściwość TextView ** android: layout_above = "@ id/fabAddSeller" ** –

Odpowiedz

9

W Android Studio, mogę naprawić po dodaniu elewację do widoku tekstowego:

android:elevation="6dp" 

Wydaje się, że FAB ma 5DP elewacji.

Nie jestem jednak pewien, czy to działa, ponieważ elewacja jest dostępna dla API> = 21.

Spróbuj zrobić kilka testów w rzeczywistych urządzeń ...

Może android:stateListAnimator="@null" wystarczy w czasie rzeczywistym urządzeń/emulatorze.

UPDATE

Po dodaniu app:elevation, to fix zaczął pracować ze starszymi API oraz

app:elevation="6dp" 
android:elevation="6dp" 
2

Wymień FrameLayout z RelativeLayout i dodać

<android.support.design.widget.FloatingActionButton 
     ... 
     android:layout_below="@+id/tvSellRecordCount" 
     ... 
     />