#android
Вопрос:
Я обнаружил странное поведение макета, когда тень вида обрезается видом снизу, если этот вид снизу имеет некоторый фон, даже если clipChildren
установлено значение false, и он правильно работает в верхней части. Если я удалю фон из вида снизу или удалю FrameLayout
— проблема решится. Но в данной конкретной проблеме я не могу этого сделать, потому что родительский макет имеет свой собственный фон, и эти три представления должны иметь свой собственный фон. Кроме того, я не могу переместить все три представления в один фрейм, потому что они будут отдельными элементами в переработчике.
Кто-нибудь знает, как это решить? Заранее спасибо.
Расположение:
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/red"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center"
android:text="asdasdasd" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingHorizontal="24dp">
<View
android:layout_width="match_parent"
android:layout_height="32dp"
android:background="@color/white"
android:elevation="16dp" />
</FrameLayout>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center"
android:text="asdasdasd" />
</androidx.appcompat.widget.LinearLayoutCompat>
Ответ №1:
Неважно. Коллега предложил добавить translationZ, поэтому проблема была устранена путем добавления android:outlineProvider=»нет» и android:translationZ=»1dp» в вывод кадров. Спасибо, Андрей!
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:clipChildren="false"
android:clipToPadding="false"
android:outlineProvider="none"
android:paddingHorizontal="24dp"
android:translationZ="1dp">