即使在0dp设置之后,weightsum也不能在布局中工作

时间:2016-04-03 09:45:22

标签: android

我希望我的布局如图所示。所以我使用的是weightum.but设计它自己不会出现除了背景颜色的重复布局。我在这里缺少什么?请帮帮我

enter image description here

xml文件中的代码

 <RelativeLayout
    android:weightSum="100"
    android:background="#C5C5C5"
    android:layout_height="60dp"
    android:orientation="horizontal"
    android:layout_width="fill_parent">
  <LinearLayout

        android:layout_weight="45"
        android:id="@+id/signinBtn"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/rounded_corner">
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Sign In"
            android:gravity="center"
            android:padding="5dp" />
    </LinearLayout>
    <LinearLayout
        android:layout_weight="10"
        android:layout_width="00dp"
        android:layout_height="wrap_content"
        android:id="@+id/signinBtn" />
    <LinearLayout
        android:layout_weight="45"
        android:id="@+id/cancelBtn"
        android:layout_width="00dp"
        android:layout_height="wrap_content"
        android:background="@drawable/rounded_corner">
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Cancel"
            android:gravity="center"
            android:padding="5dp" />
    </LinearLayout>
</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

  1. 必须在weightSum。{/ li>内声明LinearLayout属性
  2. 还必须提供orientation
  3. 在您的情况下,方向为horizontal,因此所有儿童的宽度必须为0dp
  4. 不要忘记为android:layout_weight的每个孩子添加LinearLayout属性。
  5. 所以我建议你改变你的布局如下:

    <LinearLayout
            android:id="@+id/signinBtn"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:background="@drawable/rounded_corner"
            android:orientation="horizontal"
            android:weightSum="2">
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Sign In"
                android:gravity="center"
                android:padding="5dp" />
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Cancel"
                android:gravity="center"
                android:padding="5dp" />
    </LinearLayout>
    

答案 1 :(得分:0)

您的父布局应该是线性布局,以便像这样使用重量

<LinearLayout
 android:weightSum="100"
 android:background="#C5C5C5"
 android:layout_height="60dp"
 android:orientation="horizontal"
 android:layout_width="fill_parent">
 <LinearLayout 
 android:layout_weight="45"
 android:id="@+id/signinBtn"
 android:layout_width="0dp"
 android:layout_height="wrap_content" 
 android:background="@drawable/rounded_corner">
 <TextView 
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Sign In"
 android:gravity="center" 
 android:padding="5dp" />
 </LinearLayout> 
<LinearLayout 
 android:layout_weight="10"
 android:layout_width="0dp"
 android:layout_height="wrap_content"
 android:id="@+id/signinBtn" />
 <LinearLayout 
 android:layout_weight="45"
 android:id="@+id/cancelBtn"
 android:layout_width="0dp"
 android:layout_height="wrap_content"
 android:background="@drawable/rounded_corner">
 <TextView 
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Cancel" 
 android:gravity="center" 
 android:padding="5dp" />
 </LinearLayout>
 </LinearLayout>