我是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>发布于 2013-04-08 23:41:57
如果它是6个相等的部分,那么父对象的weightSum应该是6,并且每个子对象的layout_weight应该是1。
layout_weight由视图对象的直接父对象定义。因此,LinearLayout上的weightSum为6,TableLayout上的layout_weight为1,weightSum为6,每个TablRow的layout_weight都为1。
编辑
你的代码中一定有一些与重量冲突的东西,我已经更改了下面的代码,以显示(3) LinearLayout中的三个项目和(6) TableLayout中的六个项目,我还包括了一个屏幕截图,显示了它在预览和我的设备上提供给我的确切内容。
<?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>

https://stackoverflow.com/questions/15883238
复制相似问题