Java android上的线性布局

Java android上的线性布局,java,android,xml,android-linearlayout,Java,Android,Xml,Android Linearlayout,我试图为我的Android应用程序创建一个注册表单 这是我的XML代码 <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="horizontal" > <TextView android

我试图为我的Android应用程序创建一个注册表单

这是我的XML代码

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/mynumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Number +961"
        android:textSize="20sp"
        android:color="@android:color/white" />

    <EditText
        android:id="@+id/editTextNumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Number"
        android:textColor="#FFFFFF" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="vertical" >

        <Button
            android:id="@+id/buttonCreateAccount"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginBottom="60dp"
            android:background="@drawable/ic_create" />
    </LinearLayout>
</LinearLayout>

如果注意到第一个LinearLayout具有水平方向和重力(我希望textview和edit文本彼此相邻)

在第一个线性布局之后,我希望“创建帐户”按钮出现

但是,它与前面的“编辑文本”和“文本视图”显示在同一行上

你知道我是否应该改变第二个线性布局的设置吗

<LinearLayout
    android:gravity="center_horizontal"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:gravity="center_vertical"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="horizontal">

        <TextView
            android:color="@android:color/white"
            android:id="@+id/mynumber"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="Number +961"
            android:textSize="20sp" />

        <EditText
            android:hint="Number"
            android:id="@+id/editTextNumber"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:textColor="#FFFFFF" />
    </LinearLayout>

    <Button
        android:background="@drawable/ic_create"
        android:id="@+id/buttonCreateAccount"
        android:layout_height="wrap_content"
        android:layout_marginBottom="60dp"
        android:layout_width="fill_parent" />

</LinearLayout>

试试下面的Xml文件 根据需要,使用相对布局或一个垂直方向的主线布局和水平方向的分段布局

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="vertical" >


<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="horizontal" >

<TextView
    android:id="@+id/mynumber"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Number +961"
    android:textSize="20sp"
    android:color="@android:color/white" />

<EditText
    android:id="@+id/editTextNumber"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="Number"
    android:textColor="#FFFFFF" />
</LinearLayout>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal"  >

    <Button
        android:id="@+id/buttonCreateAccount"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginBottom="60dp"
        android:background="@drawable/ic_create" />
</LinearLayout>

</LinearLayout>


更改布局类型

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical" >

当然可以。您要做的是将第二个LinearLayout封装在第一个LinearLayout中,这决定了水平布局,最终导致所有三个组件的水平定位。您的层次结构如下所示:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

    <TextView
        android:id="@+id/mynumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Number +961"
        android:textSize="20sp"
        android:color="@android:color/white" />

    <EditText
        android:id="@+id/editTextNumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Number"
        android:textColor="#FFFFFF" />
   </LinearLayout>

   <Button
       android:id="@+id/buttonCreateAccount"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:layout_marginBottom="60dp"
       android:background="@drawable/ic_create" />
</LinearLayout>
LinearLayout水平[文本视图+编辑文本+LinearLayout垂直[按钮]]

在为LinearLayout提供方向参数时,您告诉它以这种方式排列其所有子项

我想向您推荐的是,要获得所需的外观,请执行以下操作之一:

  • 使用RelativeLayout()并将元素相对于彼此及其父元素进行定位
  • 嵌套多个线性布局(不是推荐的做法;在这里,这不会证明是一个问题,但在更大和更复杂的布局中嵌套太多这样的组件可能最终导致视图的渲染时间过长)。此解决方案与您现在的解决方案非常相似,其工作原理如下:

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical" >
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal" >
    
        <TextView
            android:id="@+id/mynumber"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Number +961"
            android:textSize="20sp"
            android:color="@android:color/white" />
    
        <EditText
            android:id="@+id/editTextNumber"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="Number"
            android:textColor="#FFFFFF" />
       </LinearLayout>
    
       <Button
           android:id="@+id/buttonCreateAccount"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:layout_marginBottom="60dp"
           android:background="@drawable/ic_create" />
    </LinearLayout>
    
    
    
  • 在这里,您告诉外部布局垂直放置其子级,其中一个子级是水平放置其子级的线性布局,从而导致:

    [[正文][编辑]] [按钮]


    希望这有帮助。

    你能分享你想要的布局设计吗create@PerlDeveloper我对stackoverflow还是新手,所以我不能分享任何picAre你说你希望有两行,一行是文本视图和编辑文本,另一行是第二行是线性布局。PerlDeveloper当前的设计类似(数字-编辑文本-创建按钮)它们都在同一行上。我希望数字和编辑都在同一行上,创建帐户在下面的行上them@EranGoldin查看我写给PerlDevelopersmall的内容。创建按钮正在填充整个屏幕向下更改
    android:layout\u width=“fill\u parent”
    按钮的包装内容