2012-04-22 84 views
0

可能重复:
Button half width of screen按钮与Android中屏幕的一半宽度

我想创建一个线性层(水平方向)内的两个按钮,其具有半每一个屏幕宽度,还有一点余量。 我有这样的XML布局:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/main" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/txtTitle" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:paddingTop="5dp" 
      android:text="@string/Title" /> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center|fill_horizontal" 
      android:orientation="horizontal" 
      android:padding="2dp" > 

      <Button 
       android:id="@+id/btnLeft" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_margin="2dp" 
       android:layout_weight="1" 
       android:text="@string/LeftButton" /> 

      <Button 
       android:id="@+id/btnRight" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_margin="2dp" 
       android:layout_weight="1" 
       android:text="@string/RightButton" /> 

     </LinearLayout> 
    </LinearLayout> 

那么,所有这些代码完全适用于我想要什么,但我得到了我的两个按钮的警告。它说,“嵌套的权重是坏的表现”。我知道这是什么,但我不知道如何改变我的布局,以摆脱警告(并提高性能,我想),并保持两个按钮具有一半的屏幕。

任何想法?谢谢!

+0

我的问题是,我得到的警告消息 – ali 2012-04-22 14:52:08

+0

该警告信息说明了什么?我们... – 2012-04-22 14:52:49

+0

“嵌套的重量对性能不利” – ali 2012-04-22 14:54:35

回答

6

试试这个:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/main" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/txtTitle" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:paddingTop="5dp" 
     android:text="@string/Title" /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="2dp" 
     android:layout_marginLeft="2dp" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/btnLeft" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/LeftButton" /> 

     <Button 
      android:id="@+id/btnRight" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/RightButton" /> 

    </LinearLayout> 
</LinearLayout> 
+0

我试过了,但是警告仍然存在 – ali 2012-04-22 14:52:57

+0

使用lint工具来寻找其中的埃罗becasue放大器解决方案是正确的形式使用layout_weight来避免视图(按钮)的2个builts – Aracem 2012-04-22 15:16:50

1
<LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center|fill_horizontal" 
      android:orientation="horizontal" 
      android:padding="2dp" > 

替换上面下面“:::

<LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:padding="2dp" android:weighSum = "2"> 
+0

不起作用。也许我应该尝试相对布局,即使我讨厌重新编辑整个文件 – ali 2012-04-22 14:55:39

1
<LinearLayout 
    android:id="@+id/buttonHolder" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    > 

    <Button 
     android:id="@+id/cmdSignup" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="@string/Signup" /> 

    <Button 
     android:id="@+id/cmdLogin" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="@string/Login" /> 
</LinearLayout>