Android线性布局让我很头疼

时间:2011-12-04 12:47:33

标签: android android-layout android-linearlayout android-xml

我有以下xml文件:

  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:background="@android:color/transparent"
    android:layout_marginTop="0px"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:weightSum="1"
    android:orientation="horizontal">
      <Button android:id="@+id/info"   android:text="Info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom"></Button>
      <Button android:id="@+id/town"   android:text="Town" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom"></Button>
      <Button android:id="@+id/unit"   android:text="Unit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom"></Button>
      <Button android:layout_height="wrap_content" android:text="EndTurn" android:id="@+id/endturn" android:layout_width="wrap_content" android:layout_gravity="bottom"></Button>
  </LinearLayout>

提供以下结果:http://i42.tinypic.com/otdkb4.png

现在我对此有一些疑问:

  1. 顶部和底部填充,如何摆脱它? 我尝试过RelativeLayout,彼此之间有多个布局,填充,边距,更改高度似乎没有任何影响它。

  2. 有没有办法让布局透明化? android:背景似乎是错误的。

  3. 在第三个和第五个按钮之间有一点空间(第四个按钮应该是这样)。我在程序中捕获它并将其设置为不可见。

    unitButton.setVisibility(不可见); unitButton.setWidth(0);

  4. 现在两个按钮之间的空间是正常范围的两倍以上(介于1和2之间)这有什么想法吗? - 这是一个小问题

    提前致谢。

1 个答案:

答案 0 :(得分:0)

1:布局是否以对话形式显示?如果是这样,那会让你头疼。要获得更多控制,您应该创建自己的自定义Dialog扩展(因为某些对话框布局值是硬编码的),或者以另一种方式显示您的布局(顶部的新活动,或者使用framelayout)?

2:要使布局透明,只需不要给它一个background-attribute。 (但是,如果你真的在使用对话框,那么对话框不是透明的,而是你看到的对话框。你也可以通过将背景设置为“#00000000”(这就是你所做的)将其设置为透明。

3:仍然可以测量可见性为“不可见”的视图,这意味着它的宽度/高度以及边距和填充在布局中显示为空白区域。将可见性设置为“已消失”将不会测量它,您也不需要setWidth(0)。 (您稍后可以通过将其设置为“可见”来显示它)

编辑:删除未使用的“weightSum”属性也可能是一个好主意,因为视图现在期望其子项的总权重不是0。