线性布局不遵守加权

时间:2018-03-18 03:55:23

标签: android xml android-studio android-linearlayout

我有两个垂直线性布局,我想用它们分别占据屏幕的大约三分之一和三分之二。我使用layout_weight来实现这一点,但它们都保持在0dp厚度而不是占用父级的可用宽度。

我理解这些布局,当设置为0dp厚度时,应该占用 值layout weighting / total weighting。然而,这并没有发生。

这是我的xml,第一个布局包含一个ImageButton,第二个布局是空的:

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.3"
        android:layout_gravity="left"
        android:orientation="vertical">

        <ImageButton
            android:id="@+id/imageButton"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:adjustViewBounds="false"
            android:cropToPadding="false"
            android:scaleType="fitCenter"
            app:srcCompat="@drawable/silhouette" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.6"
        android:layout_gravity="right"
        android:orientation="vertical">


    </LinearLayout>

1 个答案:

答案 0 :(得分:0)

尝试此布局(垂直方向)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_gravity="left"
    android:layout_weight="0.3"
    android:orientation="vertical">

    <ImageButton
        android:id="@+id/imageButton"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="false"
        android:cropToPadding="false"
        android:scaleType="fitCenter"
        app:srcCompat="@drawable/silhouette" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_gravity="right"
    android:layout_weight="0.6"
    android:orientation="vertical">


</LinearLayout>

水平方向

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_gravity="left"
    android:layout_weight="0.3"
    android:orientation="vertical">

    <ImageButton
        android:id="@+id/imageButton"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="false"
        android:cropToPadding="false"
        android:scaleType="fitCenter"
        app:srcCompat="@drawable/silhouette" />
</LinearLayout>

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_gravity="right"
    android:layout_weight="0.6"
    android:orientation="vertical">


</LinearLayout>