如何将表格布局垂直划分为相等的部分?

时间:2013-04-08 15:34:18

标签: android layout android-linearlayout android-tablelayout

我是android的新手并且有一个查询。 我正在创建一个包含表格的布局。我有线性布局作为主要布局和3个子布局,我使用布局权重划分它们。现在我的问题是如何将我的线性布局中的表格布局分成6个相等的部分(其layout_weight为0.70)。

<TableLayout
    android:layout_height="0dp"
    android:layout_width="300dip"
    android:id="@+id/tablelayout01"
    android:layout_weight="0.70"
    android:layout_gravity="center"
    android:gravity="center"
    android:weightSum="1">


    <TableRow 
        android:layout_width="300dp"
        android:layout_height="0dp"
        android:id="@+id/tablerow01"
        android:layout_marginTop="15dp"
        android:layout_weight="0.10"
        android:gravity="center">

        <EditText
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:background="@drawable/edittext_bg"
            android:ems="10"
            android:gravity="center"
            android:hint="Name"
            android:textColorHint="#333333"
            android:shadowRadius="2"  
            android:shadowColor="#000000"
            android:shadowDx="2"
            android:shadowDy="4">
            <requestFocus />
        </EditText>

    </TableRow>

  <TableRow
       android:layout_width="300dp"
        android:layout_height="0dp"
        android:id="@+id/tablerow02"
        android:layout_weight="0.10"
        android:gravity="center">

      <EditText
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:background="@drawable/edittext_bg"
            android:ems="10"
            android:gravity="center_horizontal"
            android:hint="Email"
            android:inputType="textEmailAddress"
            android:textColorHint="#333333">
            <requestFocus />
        </EditText>  
  </TableRow>

   <TableRow
       android:layout_width="300dp"
        android:layout_height="0dp"
        android:id="@+id/tablerow03"
        android:layout_weight="0.10"
        android:gravity="center">

      <EditText
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:background="@drawable/edittext_bg"
            android:ems="10"
            android:gravity="center_horizontal"
            android:hint="Password"
            android:inputType="textPassword"
            android:textColorHint="#333333">
            <requestFocus />
        </EditText>  
  </TableRow>

     <TableRow
       android:layout_width="300dp"
        android:layout_height="0dp"
        android:id="@+id/tablerow04"
        android:layout_weight="0.10"
        android:gravity="center">

      <EditText
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:background="@drawable/edittext_bg"
            android:ems="10"
            android:gravity="center_horizontal"
            android:hint="Confirm Password"
            android:inputType="textEmailAddress"
            android:textColorHint="#333333">
            <requestFocus />
        </EditText>  
  </TableRow>

    <TableRow
       android:layout_width="300dp"
        android:layout_height="0dp"
        android:id="@+id/tablerow05"
        android:layout_weight="0.15">

      <Button
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:background="@drawable/btn_signup"
            android:text="Create Account"
            android:textColor="#ffffff">

        </Button>  
  </TableRow>  

        <TableRow
       android:layout_width="300dp"
        android:layout_height="0dp"
        android:id="@+id/tablerow06"
        android:layout_weight="0.15"
         android:background="@drawable/fb_button" >

        <LinearLayout
    android:layout_width="300dp"
    android:layout_height="40dp"
    android:layout_gravity="center"
    android:background="@drawable/fb_button"
    android:id="@+id/linearlayout02">


        <ImageView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/facebook_icon"/>

         <Button
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:text="Sign Up with Facebook"
        android:id="@+id/btn_fb"
        android:background="@drawable/fb_button"
        android:layout_gravity="center"
        android:textColor="#ffffff"/>   

         </LinearLayout>

  </TableRow>  




</TableLayout>

1 个答案:

答案 0 :(得分:2)

如果是6等份,那么父母应该是weightSum 6,每个孩子的layout_weight应该是1。

layout_weight由视图对象直接父级定义。因此,weightSum上的LinearLayoutlayout_weightweightSum上的TableLayout为1,TablRowlayout_weightLinearLayoutTableLayout为1。


修改

您的代码中必须存在与权重冲突的内容,我已更改下面的代码,以显示(3)<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:weightSum="3" > <TableLayout android:id="@+id/tablelayout01" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:weightSum="6" > <TableRow android:id="@+id/tablerow01" android:layout_width="300dp" android:layout_height="0dp" android:layout_marginTop="15dp" android:layout_weight="1" android:gravity="center" > <EditText android:layout_width="300dp" android:layout_height="wrap_content" android:ems="10" android:hint="Name" > <requestFocus /> </EditText> </TableRow> <TableRow android:id="@+id/tablerow02" android:layout_width="300dp" android:layout_height="0dp" android:layout_weight="1" android:gravity="center" > <EditText android:layout_width="300dp" android:layout_height="wrap_content" android:ems="10" android:hint="Email" > </EditText> </TableRow> <TableRow android:id="@+id/tablerow03" android:layout_width="300dp" android:layout_height="0dp" android:layout_weight="1" android:gravity="center" > <EditText android:layout_width="300dp" android:layout_height="wrap_content" android:ems="10" android:hint="Password" android:inputType="textPassword" > </EditText> </TableRow> <TableRow android:id="@+id/tablerow04" android:layout_width="300dp" android:layout_height="0dp" android:layout_weight="1" android:gravity="center" > <EditText android:layout_width="300dp" android:layout_height="wrap_content" android:ems="10" android:hint="Confirm Password" > </EditText> </TableRow> <TableRow android:id="@+id/tablerow05" android:layout_width="300dp" android:layout_height="0dp" android:layout_weight="1" android:gravity="center" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </TableRow> <TableRow android:id="@+id/tablerow06" android:layout_width="300dp" android:layout_height="0dp" android:layout_weight="1" android:gravity="center" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </TableRow> </TableLayout> <TextView android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1" android:text="Item 2" /> <TextView android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1" android:text="Item 3" /> </LinearLayout> 中的三个项目和{{1}}中的(6)六个项目,我还提供了一个屏幕截图,其中列出了它在预览和设备上给我的确切内容。

{{1}}