我需要android布局配置

时间:2018-10-21 02:32:10

标签: android xml android-linearlayout

enter image description here

70%30%使用LinearLayout的权重和进行布局。但是,图像布局不能覆盖在其顶部。我做错了方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用ContraintLayout获得更大的灵活性。

使用app:layout_constraintHeight_percent属性以百分比表示高度

您可以使用以下代码在两个布局之间对齐Image

    app:layout_constraintBottom_toTopOf="@id/layout2"
    app:layout_constraintTop_toBottomOf="@id/layout1"

这是实现您提到的布局的完整代码。     

    <LinearLayout
        android:id="@+id/layout1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="vertical"
        app:layout_constraintBottom_toTopOf="@id/layout2"
        app:layout_constraintHeight_percent="0.7"             // 70% of height
        app:layout_constraintTop_toTopOf="parent">

    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:gravity="center"
        android:orientation="horizontal"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHeight_percent="0.3"             // 30% of height
        app:layout_constraintTop_toBottomOf="@id/layout1">

        <ImageView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_gravity="center" />

        <ImageView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_gravity="center"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp" />

        <ImageView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_gravity="center" />
    </LinearLayout>

    <ImageView
        android:id="@+id/image"
        android:layout_width="100dp"
        android:layout_height="100dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        // To align image between layout1 and layout2  
        app:layout_constraintBottom_toTopOf="@id/layout2"
        app:layout_constraintTop_toBottomOf="@id/layout1" />

</android.support.constraint.ConstraintLayout>

sample