所以我试图在LinearLayout中堆叠一些TextView和EditText(每个在同一行上)。但我设法只使用第一对TextView和EditText。我只是不知道如何下到下一行。
XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.mylifeinformationsharedsocial.SignUpActivity" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/username_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username_text"
android:textSize="20sp"
android:gravity="start"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/username_edit_text_id"
android:hint="@string/username_hint_texts"
android:gravity="end"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/password_id"
android:text="@string/password_text"
android:textSize="20sp"
/>
<EditText
android:id="@+id/password_edit_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="@string/passworde_hint_texts"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/email_id"
android:text="@string/email_text"
android:textSize="20sp"
/>
<EditText
android:id="@+id/email_edit_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="@string/email_hint_text"
/>
<Button
android:id="@+id/sign_up_button_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_up_button_text"
/>
</LinearLayout>
照片:
你可以看到我无法看到其他TextView和EditText,所以我如何下线,以便密码字段位于第二行,电子邮件字段位于第3行和第4行的按钮?
答案 0 :(得分:2)
您可以使用嵌套LinearLayout
(一个垂直方向,其中有大量LinearLayout
水平方向)来执行此操作。但是在Android中不鼓励嵌套ViewGroup
(它会降低用户界面)。
您可以使用GridView,GridLayout或TableLayout。
答案 1 :(得分:1)
试试这个
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="horizontal"
tools:context="com.example.mylifeinformationsharedsocial.SignUpActivity" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/username_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username_text"
android:textSize="20sp"
android:gravity="start"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/username_edit_text_id"
android:hint="@string/username_hint_texts"
android:gravity="end"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/password_id"
android:text="@string/password_text"
android:textSize="20sp"
/>
<EditText
android:id="@+id/password_edit_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="@string/passworde_hint_texts"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/email_id"
android:text="@string/email_text"
android:textSize="20sp"
/>
<EditText
android:id="@+id/email_edit_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="@string/email_hint_text"
/>
</LinearLayout>
<Button
android:id="@+id/sign_up_button_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_up_button_text"
/>
</LinearLayout>
答案 2 :(得分:1)
您只使用一个LinearLayout,它会生成所有textviews和EditTexts只绘制一行。
而不是使用RelativeLayout(请仅使用一个视图或一个视图组不使用RelativeLayot,非常有用,请使用FrameLayout)使用类似的内容:
<TextView
android:id="@+id/username_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username_text"
android:textSize="20sp"
android:gravity="start"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/username_edit_text_id"
android:hint="@string/username_hint_texts"
android:gravity="end"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/password_id"
android:text="@string/password_text"
android:textSize="20sp"
/>
<EditText
android:id="@+id/password_edit_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="@string/passworde_hint_texts"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/email_id"
android:text="@string/email_text"
android:textSize="20sp"
/>
<EditText
android:id="@+id/email_edit_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="@string/email_hint_text"
/>
</LinearLayout>
<Button
android:id="@+id/sign_up_button_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_up_button_text"
/>
答案 3 :(得分:0)
您在other question的评论中说您要使用LinearLayout
。如果是这样,您可以以horizontal
线性布局包装多个vertical
线性布局,如下所示:
(请参阅下面的基于TableLayout
的解决方案)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
>
<TextView
android:id="@+id/username_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username_text"
android:textSize="20sp"
android:gravity="start"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/username_edit_text_id"
android:hint="@string/username_hint_texts"
android:gravity="end"
/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/password_id"
android:text="@string/password_text"
android:textSize="20sp"
/>
<EditText
android:id="@+id/password_edit_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="@string/passworde_hint_texts"
/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/email_id"
android:text="@string/email_text"
android:textSize="20sp"
/>
<EditText
android:id="@+id/email_edit_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="@string/email_hint_text"
/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/sign_up_button_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_up_button_text"
/>
</LinearLayout>
</LinearLayout>
如果您想使用TableLayout
代替(可能更快的呈现和字段已对齐),请使用
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
>
<TableRow>
<TextView
android:id="@+id/username_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username_text"
android:textSize="20sp"
android:gravity="start"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/username_edit_text_id"
android:hint="@string/username_hint_texts"
android:gravity="end"
/>
</TableRow>
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/password_id"
android:text="@string/password_text"
android:textSize="20sp"
/>
<EditText
android:id="@+id/password_edit_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="@string/passworde_hint_texts"
/>
</TableRow>
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/email_id"
android:text="@string/email_text"
android:textSize="20sp"
/>
<EditText
android:id="@+id/email_edit_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="@string/email_hint_text"
/>
</TableRow>
<TableRow>
<Button
android:id="@+id/sign_up_button_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_up_button_text"
/>
</TableRow>
</TableLayout>