3

こんにちは、私は LinearLayout 内で TabLayout を介してレイアウトを設定しましたが、TabLayout はすべてのフィールドを列数で分割するため、最終的にボタンを適切に設定できませんでした。タブレイアウトのフィールドと、リニアレイアウトまたはその他のログインボタンと登録ボタンの両方を残して、適切に設定できるようにします。

前もって感謝します。

レイアウト

ユーザー名 ! 編集テキスト ボックス

パスワード!編集テキスト ボックス

ログイン !登録

ボタン !ボタン

上記の形式でレイアウトが必要なので、TabLaout を使用しましたが、その場合、ボタンのビューが発生し、EditText が TextView よりも大きいため、1 つのボタンが他のボタンよりも伸びています。

 <?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>
4

3 に答える 3

1

TableLayoutで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"
>
于 2010-10-27T06:23:46.420 に答える
0

2 つの XML ファイルを作成する必要があります。

  1. 通常のlayoutフォルダに 1 つ
  2. res/layout-land横方向のレイアウトを定義する秒。res/layout-landフォルダーがまだ存在しない場合は、作成する必要があります。
于 2012-05-19T12:59:17.677 に答える
0

単一のxmlファイルに複数のレイアウトを設定することはできません...そして同じ理由で、Androidにはレイアウト、レイアウトランドスケープなどのタイプのフォルダーシステムがあります..

あなたができることは100rabhで説明されているとおりです...相対レイアウトを適用してレイアウトをユニバーサルにし、親設定を埋めます...

それ以外の場合は、説明したように、2 つの xml レイアウト ファイルを作成し、横向きのレイアウトを layout-landscape フォルダーに配置する必要があります。これにより、それぞれのレイアウトが電話の向きに応じて自動的に設定されます...

これがお役に立てば幸いです...

于 2010-10-27T07:06:32.750 に答える