android:layout_width =“Xdp”无法正常工作

时间:2015-01-17 13:35:59

标签: android android-layout

我有一个简单的布局。它是一个包含以下代码的按钮:

<Button
                android:layout_width="100dip"
                android:layout_height="100dip"
                android:text="Y" />

我在两个设备上运行它,一个比另一个小。我注意到按钮大小没有变化。我使用dip时,视图的大小会根据屏幕大小而变化。 我错了还是什么?

1 个答案:

答案 0 :(得分:1)

如果您设置了像素,则尺寸会因屏幕密度不同而发生变化。 dp用于克服这种情况,因此大小是固定的。

如果您希望尺寸与屏幕尺寸成比例变化,我认为您应该在android:weight=内使用LinearLayout。即:

<LinearLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:weightSum="3"
     ... >

    <Button
            android:layout_height="100dp"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:text="Button 1" />

    <Button
            android:layout_height="100dp"
            android:layout_width="0dp"
            android:layout_weight="2"
            android:text="Button 2" />

</LinearLayout>

在这种情况下,Button 1将始终为LinearLayout宽度的1/3,而Button 2将始终为2/3。

看到这个非常受欢迎的question