为容器中的两个孩子画一个阴影,它们之间没有空格

时间:2019-04-04 09:18:13

标签: android android-layout

因此,孩子有一些奇怪的阴影,彼此重叠。有没有办法为他们两个都画一个阴影? 我的意思是,如果它们甚至不在同一层次的视图层次上,那该怎么办。 这是我要实现的目标: design

screenshot 这是xml的布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/root"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:elevation="8dp"
    tools:context=".MainActivity">

    <View
        android:background="@android:color/white"
        android:layout_width="40dp"
        android:elevation="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_height="40dp"/>
    <View
        android:background="@android:color/white"
        android:layout_width="40dp"
        android:layout_marginTop="48dp"
        android:layout_marginStart="8dp"
        android:elevation="8dp"
        android:layout_height="40dp"/>
    <View.../>
    <View.../>
</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

如果您希望两个子View具有相同的阴影,只需将它们放在相同的Layout中,然后将阴影添加到Layout

<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:elevation="8dp">

   <View
    android:background="@android:color/white"
    android:layout_width="40dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_height="40dp"/>
   <View
    android:background="@android:color/white"
    android:layout_width="40dp"
    android:layout_marginTop="48dp"
    android:layout_marginStart="8dp"
    android:layout_height="40dp"/>

</LinearLayout>

答案 1 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout
  android:id="@+id/root"
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="200dp"
  android:elevation="8dp"
  tools:context=".MainActivity">

  <View
      android:background="@android:color/white"
      android:layout_width="40dp"
      android:elevation="8dp"
      android:layout_marginStart="8dp"
      android:layout_marginTop="8dp"
      android:layout_height="40dp"/>
  <View
      android:background="@android:color/white"
      android:layout_width="40dp"
      android:layout_marginTop="68dp"
      android:layout_marginStart="8dp"
      android:elevation="8dp"
      android:layout_height="40dp"/>
  <View.../>
  <View.../>
</RelativeLayout>

答案 2 :(得分:0)

您可以做的两件事。您可以使用线性布局而不是相对布局,也可以指定视图的位置,即

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/root"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:elevation="8dp"
    tools:context=".MainActivity">

    <View
        android:background="@android:color/white"
        android:layout_width="40dp"
        android:elevation="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_height="40dp"/>
    <View
        android:background="@android:color/white"
        android:layout_width="40dp"
        android:layout_marginTop="48dp"
        android:layout_marginStart="8dp"
        android:elevation="8dp"
        android:layout_height="40dp"
        android:layout_toRightOf="@id/view1"/>
    <View.../>
    <View.../>
</RelativeLayout>