布局重量在不同的屏幕尺寸设备中无法正常工作

时间:2017-11-25 08:15:08

标签: android android-layout

我正在制作应用[测验应用],我为每个问题选择了4个按钮作为选项。 按钮代码类似。

<LinearLayout
        android:gravity="bottom"
        android:layout_gravity="end|bottom|center"
        android:orientation="vertical"
        android:id="@+id/QNasLay"
        android:layout_width="fill_parent"
        android:layout_height="0.0dip"
        android:layout_margin="2.0dip"
        android:layout_weight="0.5">

        <LinearLayout
            android:orientation="horizontal"
            android:id="@+id/qll"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:weightSum="2.0">

            <TextView
                android:textSize="14.0dip"
                android:typeface="serif"
                android:textColor="@color/Black"
                android:gravity="center"
                android:layout_gravity="center_horizontal"
                android:id="@+id/taOpt5"
                android:visibility="visible"
                android:layout_width="fill_parent"
                android:layout_height="100.0dip"
                android:layout_marginLeft="5.0dip"
                android:layout_marginTop="5.0dip"
                android:layout_marginRight="5.0dip"
                android:layout_marginBottom="5.0dip"
                android:maxWidth="110.0dip"
                android:maxHeight="80.0dip"
                android:minWidth="90.0dip"
                android:minHeight="60.0dip"
                android:hint="Option 2"
                android:singleLine="false"
                android:layout_weight="1.0"/>

            <TextView
                android:textSize="14.0dip"
                android:typeface="serif"
                android:textColor="@color/Black"
                android:gravity="center"
                android:layout_gravity="center_horizontal"
                android:id="@+id/taOpt6"
                android:visibility="visible"
                android:layout_width="fill_parent"
                android:layout_height="100.0dip"
                android:layout_marginLeft="5.0dip"
                android:layout_marginTop="5.0dip"
                android:layout_marginRight="5.0dip"
                android:layout_marginBottom="5.0dip"
                android:maxWidth="110.0dip"
                android:maxHeight="80.0dip"
                android:minWidth="90.0dip"
                android:minHeight="60.0dip"
                android:hint="Option 2"
                android:singleLine="false"
                android:layout_weight="1.0"/>

        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:weightSum="2.0">

            <TextView
                android:textSize="14.0dip"
                android:typeface="serif"
                android:textColor="@color/Black"
                android:gravity="center"
                android:layout_gravity="center_horizontal"
                android:id="@+id/taOpt7"
                android:visibility="visible"
                android:layout_width="fill_parent"
                android:layout_height="100.0dip"
                android:layout_marginLeft="5.0dip"
                android:layout_marginTop="5.0dip"
                android:layout_marginRight="5.0dip"
                android:layout_marginBottom="5.0dip"
                android:maxWidth="110.0dip"
                android:maxHeight="80.0dip"
                android:minWidth="90.0dip"
                android:minHeight="60.0dip"
                android:hint="Option 2"
                android:singleLine="false"
                android:layout_weight="1.0"/>

            <TextView
                android:textSize="14.0dip"
                android:typeface="serif"
                android:textColor="@color/Black"
                android:gravity="center"
                android:layout_gravity="center_horizontal"
                android:id="@+id/taOpt8"
                android:visibility="visible"
                android:layout_width="fill_parent"
                android:layout_height="100.0dip"
                android:layout_marginLeft="5.0dip"
                android:layout_marginTop="5.0dip"
                android:layout_marginRight="5.0dip"
                android:layout_marginBottom="5.0dip"
                android:maxWidth="110.0dip"
                android:maxHeight="80.0dip"
                android:minWidth="90.0dip"
                android:minHeight="60.0dip"
                android:hint="Option 2"
                android:singleLine="false"
                android:layout_weight="1.0"/>

        </LinearLayout>

    </LinearLayout>

但是,当我使用不同屏幕尺寸的设备运行应用程序时,它会像bellow图像。 Image Here

我知道如何解决这个问题。

我期待布局设计类似于this image

1 个答案:

答案 0 :(得分:0)

  • 如果您正在使用不同的屏幕尺寸。您可以将高度和宽度放在不同的值文件夹中,以便它在tab mobile和旧的移动4英寸屏幕尺寸中看起来很好。

  • 为不同的屏幕尺寸移除高度并使用不同尺寸的重量或不同值文件夹。你可以在这里找到它。

https://stackoverflow.com/a/32861248/6891563

  • 其次从xml中删除此代码,因为它使布局不灵活。

            android:maxWidth="110.0dip"
            android:maxHeight="80.0dip"
            android:minWidth="90.0dip"
            android:minHeight="60.0dip"
    
  • 奖金建议

始终使用layout_width 0 dp重量属性以获得更好的性能。

如果Linearlayout horizo​​ntal和child有权重,则使用layout_width 0dp

如果Linearlayout vertical和child有权重,则使用layout_height 0dp