3

我对 Android 布局很陌生。

我试图以 1:3:1 的比例设置 Age:EditText:Year,并且在高度上设置相同的大小。

我应该使用表格布局吗?如果是的话,当我在其他行中做一些事情时,如何防止 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>
4

3 回答 3

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>

在此处输入图像描述

于 2012-11-23T11:48:18.993 回答
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" />

于 2012-11-23T11:43:54.430 回答
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>
于 2012-11-23T12:14:31.160 回答