我是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>
答案 0 :(得分:2)
如果是6等份,那么父母应该是weightSum
6,每个孩子的layout_weight
应该是1。
layout_weight
由视图对象直接父级定义。因此,weightSum
上的LinearLayout
为layout_weight
,weightSum
上的TableLayout
为1,TablRow
为layout_weight
,LinearLayout
将TableLayout
为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}}