如何在Android中的1个XML文件中设置不同的布局

时间:2010-10-27 04:27:28

标签: android android-layout android-2.2-froyo android-xml

朋友们,我已经在LinearLayout中通过TabLayout设置了我的布局,但最后仍然无法正确设置我的按钮,因为TabLayout将所有字段分成列数,所以任何人都可以帮助如何在一个XML文件中设置2个布局 表示TabLayout中的所有字段,并保留线性布局中的“登录”和“注册”按钮以及其他可以正确设置的字段。

提前致谢。

布局

用户名! EditTextBox

密码! EditTextBox

登录!注册

按钮!按钮

我希望我的布局在上面的格式中,所以我使用了TabLaout但是在这种情况下它导致我的按钮的视图以及它比一个按钮拉伸一个按钮,因为EditText大于TextView

 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:textSize="26sp"
    android:text="@string/login_text"/>
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    >
    <TableRow>
    <TextView  
        android:layout_width="120px"  
        android:text="User name"
        />
    <EditText
        android:id="@+id/txtUserName"
        android:singleLine="true"
        android:maxLength="20"
        android:width="195px"
    />
    </TableRow>
    <TableRow>
    <TextView  
        android:layout_width="120px"  
        android:text="Password"
        />
    <EditText
        android:id="@+id/txtPassword"
        android:width="195px"
        android:maxLength="20"
        android:singleLine="true"
        android:password="true"
    />
    </TableRow>
    <TableRow>
            <TextView />
            <CheckBox android:id="@+id/chkRememberPassword"
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:text="Remember Password"
                />   
        </TableRow>
        <TableRow>
        <Button 
                android:id="@+id/buttonRegister" 
                android:text="Register" 
                android:layout_width="124px"
                android:layout_height="wrap_content"
                android:layout_below="@+id/chkRememberPassword"
                android:layout_alignRight="@+id/chkRememberPassword"
                />
        <Button 
            android:id="@+id/buttonSignIn" 
            android:text="Log In" 
            android:layout_width="124px"
            android:layout_height="wrap_content"
            android:layout_below="@+id/chkRememberPassword"
            android:layout_alignLeft="@+id/chkRememberPassword"
            />        
    </TableRow>

    <TextView  
    android:id="@+id/statusError"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
     />
    </TableLayout>
    </LinearLayout>

3 个答案:

答案 0 :(得分:1)

我建议你在TableLayout&amp;中使用wrap_content。然后你可以在LinearLayout中使用你的按钮

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
>

答案 1 :(得分:0)

无法在单个xml文件中设置多个布局......出于同样的原因,Android具有布局,布局 - 横向等类型的文件夹系统..

你能做的就像100rabh所解释的那样......通过应用相对布局和填充父设置来使布局具有通用性......

否则,正如我解释的那样,您需要制作2个xml布局文件并将横向布局放置在布局 - 横向文件夹中,从而根据手机的方向自动设置相应的布局......

希望这有助于你...

答案 2 :(得分:0)

您需要创建2个XML文件:

  1. 正常layout文件夹中的一个
  2. res/layout-land中的第二个,用于定义横向方向的布局。如果res/layout-land文件夹尚不存在,则需要创建该文件夹。