我是Android Layouts的新手。
我试图以1:3:1的比例设置年龄:EditText:年,并在高度上设置相同的尺寸。
我应该使用TableLayout吗?如果是,当我在其他行中执行某些操作时,如何防止TableRow1更改宽度等?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/txtAge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/search_text"
android:layout_alignBottom="@+id/search_text"
android:layout_alignParentLeft="true"
android:text="Age"
android:layout_weight="0.3"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/txtYears"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/search_text"
android:layout_alignBottom="@+id/search_text"
android:layout_alignParentRight="true"
android:text="Years"
android:layout_weight="0.3"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/search_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@id/txtYears"
android:layout_toRightOf="@id/txtAge"
android:ems="10"
android:hint="Enter your age"
android:inputType="text|number"
android:lines="1"
android:layout_weight="0.7"
android:maxLength="2"
android:maxLines="1" />
<TextView
android:id="@+id/txtHeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignBaseline="@+id/enterHeight"
android:layout_below="@+id/search_text"
android:text="Height"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_weight="1"/>
<Spinner
android:id="@+id/spinHeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/txtHeight"
android:layout_weight="1" />
<EditText
android:id="@+id/enterHeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/search_text"
android:layout_toLeftOf="@+id/spinHeight"
android:layout_toRightOf="@+id/txtHeight"
android:ems="10"
android:hint="Enter your height"
android:inputType="text|number"
android:lines="1"
android:layout_weight="3"
android:maxLength="3"
android:maxLines="1" >
<requestFocus />
</EditText>
</RelativeLayout>
答案 0 :(得分:4)
我认为这就是你想要的。见下图。
<?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" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:weightSum="100" >
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="20"
android:gravity="center_vertical|center_horizontal"
android:text="Age"
android:textColor="#FFF"
android:textSize="16sp"
android:textStyle="bold" />
<EditText
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="60" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="20"
android:gravity="center_vertical|center_horizontal"
android:text="Years"
android:textColor="#FFF"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:weightSum="100" >
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="20"
android:gravity="center_vertical|center_horizontal"
android:text="Height"
android:textColor="#FFF"
android:textSize="16sp"
android:textStyle="bold" />
<EditText
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="60" />
<Spinner
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="20" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:2)
我认为你应该使用线性布局。你可以设置android:weightSum="10"
属性。
它的总布局。现在你必须使用android:layout_weight="2"
设置冷冻对象。
这样就可以在布局中控制你的对象。
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:layout_weight="2"
android:text="Age" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="6" >
</EditText>
<TextView
android:id="@+id/textView1"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginRight="5dp"
android:layout_weight="2"
android:text="Years" />
答案 2 :(得分:0)
有类似的东西..伪代码未经测试..
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:gravity = "center_horizontal"
android:id="@+id/firstLinearLayout"
android:orientation = "horizontal"
android:weightSum="10">
<TextView
android:weight = "2"
/>
<TextView
android:weight = "6"
/>
<EditText
android:weight = "2"
/>
</LinearLayout>
<LinearLayout
android:gravity = "center_horizontal"
android:layout_below="@id/loginButtonLayout"
android:orientation = "horizontal"
android:weightSum="10">
</LinearLayout>