Android - два вида с одинаковой высотой бок о бок
У меня есть два вида с одинаковым возвышением рядом друг с другом. Мое желание поведения состоит в том, что они не будут бросать тень друг на друга, поскольку они имеют одинаковое возвышение, однако, что происходит, это то, что вид слева, тень справа. Они не одинакового размера, поэтому я не могу поместить их в другое представление и применить к этому виду возвышение.
Является ли это ожидаемым поведением? Есть ли способ обойти это?
Edit:
Я просто воссоздал более простые представления, вот код.
Я также заметил, что он имеет ожидаемое поведение, если у меня есть представление непосредственно в макете и не включаю его, как я сделал это в этом примере, и так как мне нужно, чтобы он работал.
<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"
android:orientation="horizontal"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="@android:color/holo_green_dark">
<LinearLayout
android:layout_width="200dp"
android:layout_height="200dp"
android:background="@android:color/holo_red_dark"
android:elevation="24dp"/>
<include layout="@layout/test"/>
</LinearLayout>
И вот include:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@android:color/holo_red_dark"
android:elevation="24dp"/>
</LinearLayout>
И снимок экрана:
![http://i.imgur.com/bhm1nbI.png]()
Ответы
Ответ 1
См. иерархию, которую вы имеете:
![введите описание изображения здесь]()
Итак, вы применили возвышение до 1
и 3
, которые не являются братьями и сестрами. По-видимому, если один вид выше в иерархии, чем он должен бросать тень, независимо от того, какие представления имеют одинаковое возвышение или нет.
Если вы применили возвышение до 2
вместо 3
, вы могли бы не видеть эффект тени.
Итак, если вы просто измените свой test.xml
на это:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:elevation="24dp">
<LinearLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@android:color/holo_red_dark"/>
</LinearLayout>
Вы получите этот вывод:
![введите описание изображения здесь]()