0

我正在使用水平 LinearLayout 将设备屏幕的矩形块分成 3 个相等的部分。这是使用权重来完成的。

这样做的目的是并排放置 3 个按钮,一个设置按钮、一个帮助按钮和一个联系按钮。据我所知,由于 LinearLayout 的层次结构规则,应该遵循 LinearLayout 中的第一个按钮在左侧,下一个在中间,最后一个在右侧。

这也是可视化编辑器显示的内容。但是当我运行应用程序时(我已经在多个设备上尝试过),联系人按钮最终位于左侧,设置按钮位于中间,帮助按钮位于右侧。

我尝试更改代码的层次结构(即,我将联系按钮的代码放在设置按钮的代码之上等),但对结果没有任何影响。

LinearLayout 的代码如下:

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

    <ImageButton
        android:id="@+id/settings"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="33"
        android:src="@drawable/settings" />

    <ImageButton
        android:id="@+id/help"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="33"
        android:src="@drawable/help" />

    <ImageButton
        android:id="@+id/contact"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="33"
        android:src="@drawable/contact" />

</LinearLayout>
4

1 回答 1

1

XML 没有任何问题。如果应用程序确实在使用上述 XML,那么更改布局中 ImageButtons 的顺序确实应该会更改屏幕上的顺序。

这里有两件事浮现在脑海:

  1. 您的构建/运行过程存在问题,并且更新的代码更改不会在您运行应用程序时反映出来。我建议对一些明显的字符串资源进行更改并测试这是否是问题所在。以防万一,您还应该进行干净的构建。
  2. 您有多个具有相同名称的布局文件(例如,一个在 layout/ 中,另一个在 layout-land/ 中),并且您没有更改正确的文件。
于 2013-08-06T22:53:56.530 回答