Чи є спосіб додати висоту до View
пристроїв перед льодяником, не загортаючи їх у CardView
?
CardView
. Я хотів би додати його до будь-якого, View
якщо це можливо.
Чи є спосіб додати висоту до View
пристроїв перед льодяником, не загортаючи їх у CardView
?
CardView
. Я хотів би додати його до будь-якого, View
якщо це можливо.
Відповіді:
ViewCompat.setElevation(View, int)
в даний час не створює прокладок.
Єдиний спосіб імітувати висоту прямо зараз - застосувати тінь pre-v21. Визначте свій стиль / макет / малювання values
та перевизначте його values-v21
. Для кнопок я використовую перевизначення стилю. Що стосується макетів, я, як правило, звертаюся до перевизначення посилань (використовуйте, @null
щоб позбутися малюнка).
Сподіваємось, в майбутньому оновлення бібліотеки підтримки додасть прокладки.
Цей потік reddit відстежує згадане оновлення.
Нова бібліотека дизайну підтримки фактично створює прокладки для плаваючої кнопки дії.
Ось приклад того, як додати тінь нижче Toolbar
на пристроях перед льодяником:
Макет повинен бути таким:
<RelativeLayout
android:id="@+id/toolbar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" >
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:animateLayoutChanges="true"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
<View
android:id="@+id/toolbar_shadow"
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_shadow"
android:layout_below="@id/toolbar"
android:background="@drawable/toolbar_dropshadow" />
</RelativeLayout>
І тінь така:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="90"
android:endColor="#88444444"
android:startColor="@android:color/transparent" />
</shape>
Я досягаю того ж ефекту, використовуючи,
android:background="@android:drawable/dialog_holo_light_frame"
Мій тестований результат:
посилання - https://stackoverflow.com/a/25683148/3879847
Оновлення: Якщо ви хочете змінити колір цього малюваного малюнка, спробуйте відповідь @Irfan
Тепер ви можете використовувати схему xmlns:app="http://schemas.android.com/apk/res-auto"
іapp:elevation
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
app:elevation="5dp">