0

Das Wichtigste zuerst machen, ich diese Antwort überprüft haben: How to add shadow to the FAB provided with the android support design library?Kann nicht Floating Action-Knopf „float“

Aber auch das Hinzufügen der app:borderWidth="0dp" oder elevation="6dp" es nicht funktioniert hat. Ich habe diese Antwort überprüft: https://stackoverflow.com/a/30752754/1121139 es sagt, wie größer meine Erhebung, größer ist der Schatten, und hier geht die lustige Sache, auf dem Vorschaubildschirm zeigt es den Schatten, aber wenn auf dem Smartphone läuft, habe ich keinen Schatten.

geht hier ein Screenshot vom Smartphone: enter image description here

und hier geht und Screenshot von Vorschaubildschirm auf Android Studio: enter image description here

Mein Layout-Code:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context="amaz1ngc0de.com.br.materialdesign.MainActivity"> 

<include android:id="@+id/app_bar" layout="@layout/toolbar_app_bar"/> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/rv_test_fab" 
    android:layout_below="@id/app_bar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

</android.support.v7.widget.RecyclerView> 

<android.support.design.widget.FloatingActionButton 
    android:layout_margin="16dp" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentBottom="true" 
    android:src="@drawable/ic_add_white_24dp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    app:elevation="140dp" 
    app:borderWidth="0dp" 
    app:pressedTranslationZ="12dp" 
    android:clickable="true"/> 

Antwort

0

Versuchen Sie, Ihr Layout in einem CoordinatorLayout zu verpacken d die FAB auf dem gleichen Niveau setzen, anstelle eines RelativeLayout, Beispiel:

<!-- main_layout.xml --> 
<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:animateLayoutChanges="true" 
    android:fitsSystemWindows="true" 
    tools:context=".activity.MainActivity"> 

    <include layout="@layout/toolbar_app_bar" /> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/rv_test_fab" 
     android:layout_below="@id/app_bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

    <android.support.design.widget.FloatingActionButton 
     ... /> 

</android.support.design.widget.CoordinatorLayout> 

Edit: Dieses Widget aus der Design-Bibliothek ist, sollten Sie es in Ihrer App build.gradle Datei hinzugefügt haben:

compile 'com.android.support:design:24.0.0' 
0

OK, also habe ich ein bisschen herumprobiert und es scheint, dass die Spiegelung mit Elevation nicht so funktioniert, wie Sie es sich vorgestellt haben. Dieser Code gibt einen guten Schatten:

Aber wenn ich Höhe auf 200 setzen, verschwindet der Schatten. Es gibt also nur einen Bereich, in dem der Schatten arbeitet.

Vielleicht können Sie es als ein Objekt verstehen und einen Schatten auf ein darunter liegendes Objekt werfen. Je höher die Elevation ist, desto größer ist der Abstand zwischen den beiden Objekten und desto weniger Schatten wird geworfen ...

+0

Ich versuchte es ein wenig mit dem DP und es scheint bei 60dp, dass der Schatten wieder verblasst. Also 40dp oder 50dp ist der größte Schatten, den du bekommen kannst. –