webentwicklung-frage-antwort-db.com.de

Wie kann man den Höhenwert richtig auf Recyclerview einstellen?

Ich arbeite am Rasterlayout unter Verwendung von Recycling in Android. Das Raster nimmt einen Teil des Bildschirms ein und hat einen Schatten. Um den gewünschten Schatteneffekt zu erzielen, verwende ich einen Höhenwert von 12 dp. Es scheint jedoch nicht zu funktionieren, da ich keine Erhebung (Schatten) des Gitters sehen kann. Warum passiert dies? Unterstützt Recyclerview keine Elevation?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:id="@+id/activity_grid_layout"
Android:background="@drawable/gradient"
Android:layout_height="match_parent"
tools:context="com.mindhive.mindhive.activities.GridActivity">

<Android.support.v7.widget.RecyclerView
    Android:id="@+id/grid_recycler_view"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_marginBottom="110dp"
    Android:layout_marginLeft="15dp"
    Android:layout_marginTop="80dp"
    Android:background="@color/transparent"
    Android:elevation="12dp"
    Android:scrollIndicators="none"
    Android:scrollbars="none"
    Android:padding="0dp" />

<ImageView
    Android:id="@+id/imageView"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignBottom="@+id/grid_recycler_view"
    Android:layout_alignStart="@+id/grid_recycler_view"
    Android:layout_marginBottom="-18dp"
    Android:layout_marginStart="67dp"
    Android:src="@drawable/main_filter"
    Android:elevation="1dp" />
 ......
12
Neanderthal

Ich habe die Antwort nach ein bisschen Suche von hier gefunden. Das Problem war der transparente Hintergrund. Die Ansicht funktioniert nur mit nicht transparenten Hintergründen in Ansichten. Um dies zu beheben, sollten wir Android:outlineProvider="bounds" in der Ansicht und Android:clipToPadding="false" im übergeordneten Element der Ansicht festlegen. 

Hoffe es hilft jemandem.

19
Neanderthal

Für Lollipop und Sie können die Android-Eigenschaft Elevation verwenden. Unter den Lollipop-Versionen müssen Sie jedoch einen benutzerdefinierten Schatten angeben

card_background.xml 

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
    <shape Android:shape="rectangle">
        <solid Android:color="#CABBBBBB"/>
        <corners Android:radius="2dp" />
    </shape>
</item>

<item
    Android:left="0dp"
    Android:right="0dp"
    Android:top="0dp"
    Android:bottom="2dp">
    <shape Android:shape="rectangle">
        <solid Android:color="@Android:color/white"/>
        <corners Android:radius="2dp" />
    </shape>
</item>
</layer-list>

Geben Sie diese Datei als Hintergrund für Ihre Recycling-Inflator-Datei an.

3
Sachin Mandhare

Die Android: Elevation wendet Schatten nur auf Geräten an, auf denen Lollipop oder höher ausgeführt wird. Wenn Sie ältere Geräte unterstützen möchten, müssen Sie selbst einen Schatten erstellen.

0
Daniel Zolnai