1

我正在为自己创建一个车载底座应用程序,我有 6 个按钮可让我放置应用程序的快捷方式。我设计了横向和纵向模式的布局。我在纵向模式下遇到屏幕尺寸问题。我的图标排列如下:

Text up here
------------
| 1  |  2  |
------------
| 3  |  4  |
------------
| 5  |  6  |
------------

这是按钮的 XML:

<Button
    android:id="@+id/btnLaunchSlotOne"
    style="@style/launchButton"
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:layout_weight="1"
    android:layout_marginRight="8dp"
    android:padding="10dp"
    android:text="Navigation"
    android:textColor="#ffffff" />

现在我遇到的问题是,当我在较小的屏幕尺寸上测试应用程序时,按钮似乎没有调整大小,并且它们从底部的屏幕上消失了。我怎样才能让它们正确扩展?我以为使用“dp”可以解决所有这些问题?

我需要以编程方式计算屏幕尺寸吗?

感谢您的建议/帮助!

4

4 回答 4

3

使用类似下面的布局来正确嵌套按钮:

<LinearLayout
    android:orientation="vertical">
    <TextView>Put your Text here</TextView>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_weightSum="2">
        <LinearLayout
            android:orientation="vertical"
            android:layout_height="fill_parent"
            android:layout_width="0dp"
            android:layout_weightSum="3"
            android:layout_weight="1">
            <Button 
                android:layout_weight="1"/>
            <Button 
                android:layout_weight="1"/>
            <Button 
                android:layout_weight="1"/>
        </LinearLayout>
        <LinearLayout
            android:orientation="vertical"
            android:layout_weightSum="3"
            android:layout_height="fill_parent"
            android:layout_width="0dp"
            android:layout_weight="1">
            <Button 
                android:layout_weight="1"/>
            <Button 
                android:layout_weight="1"/>
            <Button 
                android:layout_weight="1"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

然后每个按钮需要 0dp 的高度(这可以让权重应用并水平缩放按钮)和填充父项的宽度。

诀窍是子元素的权重将导致设置为 0dp 的尺寸填充到父元素的 weightSum 的百分比。

例如,我有一个带有 weightSum 3 和 3 个重量为 1 的子按钮的线性布局。当高度设置为 0dp 时,它们将分别取父级高度的 1/3 作为其高度。当宽度设置为 0dp 时,它们将各自取父宽度的 1/3 作为自己的宽度。

这是根据百分比宽度或高度组织项目的最佳方式。

顺便说一句,如果你有两个按钮,一个重量为 2,一个按钮重量为 1,那么 1 个按钮将是父母身高/宽度的 33%,另一个是父母身高/宽度的 66%。方便的小技巧,适用于所有屏幕。

于 2012-04-20T16:43:53.220 回答
2

如果您希望按钮始终占据全屏,您可以使用GridView将自动处理所有屏幕尺寸的缩放。

于 2012-04-20T16:34:30.757 回答
0

您可以使用以下 xml 文件:::

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <TextView 
 android:text="Text 1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 /> 
 <LinearLayout 
  android:orientation="horizantal" android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:weight_sum = "2">
 <Button android:layout_width="fill_parent" android:layout_weight="1"
  android:layout_height="fill_parent" android:text="test" />
<Button android:layout_width="fill_parent" android:layout_weight="1"
  android:layout_height="fill_parent" android:text="test" />
</LinearLayout>
 <LinearLayout 
  android:orientation="horizantal" android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:weight_sum = "2">
 <Button android:layout_width="fill_parent" android:layout_weight="1"
  android:layout_height="fill_parent" android:text="test" />
<Button android:layout_width="fill_parent" android:layout_weight="1"
  android:layout_height="fill_parent" android:text="test" />
</LinearLayout>
 <LinearLayout 
  android:orientation="horizantal" android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:weight_sum = "2">
 <Button android:layout_width="fill_parent" android:layout_weight="1"
  android:layout_height="fill_parent" android:text="test" />
<Button android:layout_width="fill_parent" android:layout_weight="1"
  android:layout_height="fill_parent" android:text="test" />
</LinearLayout>


</LinearLayout>
于 2012-04-20T16:42:15.387 回答
0

在此处查看示例特别是仪表板布局

于 2012-04-20T17:50:51.150 回答