Тени не работают в макете Android

У меня проблема с тенями. В предварительном просмотре Android Studio показано:

Предварительный просмотр редактора

но в эмуляторе и в телефоне вижу:

Предварительный просмотр эмулятора

Есть мой xml:

<LinearLayout
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"

tools:context=".Profil"
android:background="@color/lightback"
android:orientation="vertical">


<FrameLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="30dp"
    android:id="@+id/testFragmentu2"
    android:layout_below="@+id/imageView"
    android:layout_centerHorizontal="true"

    android:translationZ="10dp"
    android:background="@android:color/transparent"></FrameLayout>

<FrameLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="175dp"
    android:id="@+id/testFragmentu"
    android:layout_below="@+id/imageView"
    android:layout_centerHorizontal="true"
    android:translationZ="0dp"

    android:background="@android:color/transparent"
    android:layout_marginTop="10dp"></FrameLayout>

<android.support.v4.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swiperefresh"
    android:layout_width="match_parent"
    android:layout_height="150dp"

    android:translationZ="10dp"
    android:background="@android:color/transparent"
    android:layout_marginTop="10dp">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="right|top"
        android:background="@android:color/transparent">

        <TextView android:id="@id/android:empty"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"

            android:text="Niestety, wszyscy mają partnerów na siłownię... :(" />


        <ListView android:id="@id/android:list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"

            android:drawSelectorOnTop="false" />


    </LinearLayout>
</android.support.v4.widget.SwipeRefreshLayout>

I am trying to create 3 fragments. Two of them should appear from top when I click on an item of third fragment. But there is no shadow. I've set translationZ but it doesn't work...


person Magnus2005    schedule 29.06.2016    source источник
comment
Используйте CardView с высотой   -  person Divyang Panchal    schedule 29.06.2016
comment
На какой версии Android вы тестируете?   -  person Rajat Mehra    schedule 29.06.2016
comment
API23. Я не хочу использовать CardView.   -  person Magnus2005    schedule 29.06.2016


Ответы (1)


Для теней вы должны использовать elevation следующим образом:

app:elevation="10dp"

вместо translationZ

Как указано в документах для Android, elevation – это базовая глубина по оси z. представления, и это статическая переменная, а translationZ — динамическая.

возвышение

base z глубина обзора.

Должно быть значением измерения, представляющим собой число с плавающей запятой, к которому добавлена ​​единица измерения, например 14,5sp.

Вы должны использовать translationZ для анимации.

person Ashish Ranjan    schedule 29.06.2016
comment
Это работает, спасибо. Но мне пришлось изменить цвет фона на непрозрачный - person Magnus2005; 29.06.2016