Intereting Posts
Последние инструменты ADT и sdk установлены, но все еще запрашиваются последние инструменты sdk Random () в sqlite и Android sdk Идеи для физики для кубиков Не удалось создать экземпляр фрагмента Неизвестная кодировка для матрицы данных, закодированная с помощью сканера штрих-кода Google (видение) Кроутон + РаздвижныеМеню перекрываются Изменение размера изображения до полной ширины и переменной высоты с помощью Picasso Как настроить модуль библиотеки Android и называться несколькими проектами в Android Studio? Можно установить setDisplayShowTitleEnabled в xml для темы ActionBar? Ошибка браузера для Android? Прокрутка переполнения div Непрерывная интеграция для Android через TeamCity. Предпочтительные инструменты? Как добавить отступы между пунктами меню в android? Ошибка медиаплеера (-19,0) после повторных игр Интернет-соединение в эмуляторе Android всегда отображает состояние подключения Файлы Android .xml: почему предопределенные цвета не работают для меня?

Android: возвышение только с эффектами тени на нижней стороне, как заставить эффекты тени показать сверху?

Я использую framelayout в нижней части действия, чтобы показать эффект тени на фрагменте, я добавляю android: elevation. Но теневые эффекты появляются только в нижней части не сверху, кто-нибудь может дать мне совет?

<FrameLayout android:id="@+id/bottom_container" android:background="#00737f" android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="bottom" android:elevation="4dp" android:layout_alignParentBottom="true" android:layout_marginBottom="50dp"/> 

Solutions Collecting From Web of "Android: возвышение только с эффектами тени на нижней стороне, как заставить эффекты тени показать сверху?"

Существует трюк, который можно использовать для отображения тени над представлением.

В основном мы должны использовать два вложенных макета, где внешний макет бросает тень с elevation а внутренний макет устанавливает background . Затем, установив padding на внешний макет, мы можем сдвинуть внутренний макет вниз, не перемещая тень, таким образом, больше становится видимой тень:

 <FrameLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:layout_marginBottom="50dp" android:elevation="4dp" android:outlineProvider="bounds" android:paddingTop="2dp" android:layout_marginTop="-2dp"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00737f"> <!-- content --> </FrameLayout> </FrameLayout> 

Здесь важна атрибут outlineProvider , который должен заставить внешний макет отбрасывать тень даже без установки фона.

Далее мы укажем отрицательный margin чтобы компенсировать смещение, созданное дополнением. В зависимости от варианта использования мы можем опустить это.

Но внимание: если мы слишком много переместим View, некоторые видимые артефакты становятся видимыми:

Примеры смещения тени для андроида

Источник этого примера на Github