2011-12-04 58 views
0

我有下面的XML文件:Android的线性布局让我头疼

<?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(INVISIBLE); unitButton.setWidth(0); unitButton.setWidth(0);

现在两个按钮之间的距离是正常范围的两倍以上(介于1和2之间)对此有何想法? - 虽然这是一个小问题

在此先感谢。

+0

请让这成为一个真正的问题。 – scorpiodawg

回答

0

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

2:为了让布局透明,根本不要给它一个背景属性。 (但是,如果你确实在使用对话框,那么对话框不是透明的,而是你看到的,你可以通过设置背景为“#00000000”(这是你所做的)来设置它。

3:作为“不可见”的可见性的视图仍然是测量的,这意味着它的宽度/高度以及边距和填充都显示为布局中的空白区域。不测量它,你也不需要setWidth(0)(你仍然可以通过设置回“可见”来显示它)

编辑:删除未使用的“weightSum”属性也可能是好主意,因为现在的观点是期待其子女的总重量不是0.

+0

实际上我使用了一个对话框,并用它做了一堆东西 - 例如。不锁定背景。我试图删除.setContentView和.show旁边的问题仍然存在的地方。我会研究对话 - 在那里从来没有被认为是问题。所以thx为输入 – Vulcano

+0

建立了一个小的自定义对话框,并像一个魅力。谢谢! – Vulcano