0

レイアウトをデザインしようとしていますが、正しい方法で実現したいと考えています。

今のところ、私はこれを私のレイアウトとして持っています(これはログインフォームです):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/color_header"
        android:padding="10dp" >

        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/white"
            android:typeface="sans"
            android:textStyle="bold"
            android:text="@string/app_name"/>
    </TableRow>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_vertical|center_horizontal"
        android:orientation="vertical">

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

            <TextView
                android:id="@+id/txtUser"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/login_user"
                android:typeface="sans"
                android:textAppearance="@android:style/TextAppearance.Medium" />

            <EditText
                android:id="@+id/etUser"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="text" >

                <requestFocus />
            </EditText>

            <TextView
                android:id="@+id/txtPassword"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/login_password"
                android:typeface="sans"
                android:textAppearance="@android:style/TextAppearance.Medium" />

            <EditText
                android:id="@+id/etPassword"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPassword" />

            <CheckBox
                android:id="@+id/cbRemember"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:typeface="sans"
                android:text="@string/login_remember" />

            <Button
                android:id="@+id/btnLogin"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="@string/login_login" />

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

これは出力です:

ここに画像の説明を入力

期待どおりに動作しますが、This LinearLayout layout or its LinearLayout parent is useless29 行目 (3 番目の LinearLayout) に表示されます。

私が望むものを達成するための正しい方法はどれですか?

ありがとう!

4

4 に答える 4

2

警告を通じて、システムは、レイアウト コードを最適化する余地があることを伝えたいだけです。

warning に注意を払うことをお勧めします。

この下の LineraLayout から、線形レイアウトを削除する必要があります。

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_vertical|center_horizontal"
        android:orientation="vertical">

        <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:gravity="center">
于 2012-09-24T09:35:42.693 に答える
1

これを試して :

<TableRow
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/color_header"
    android:padding="10dp" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textColor="@android:color/white"
        android:textStyle="bold"
        android:typeface="sans" />
</TableRow>

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

    <TextView
        android:id="@+id/txtUser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/login_user"
        android:textAppearance="@android:style/TextAppearance.Medium"
        android:typeface="sans" />

    <EditText
        android:id="@+id/etUser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="text" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/txtPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/login_password"
        android:textAppearance="@android:style/TextAppearance.Medium"
        android:typeface="sans" />

    <EditText
        android:id="@+id/etPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPassword" />

    <CheckBox
        android:id="@+id/cbRemember"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/login_remember"
        android:typeface="sans" />

    <Button
        android:id="@+id/btnLogin"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/login_login" />
</LinearLayout>

ここに画像の説明を入力してください

于 2012-09-24T09:57:46.363 に答える
1

テーブルレイアウトを使用

  <?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableLayout1"    
android:layout_width="fill_parent"
android:layout_height="fill_parent"       
android:gravity="center_vertical"   
android:stretchColumns="1">

<TableRow
    android:id="@+id/row1"
    android:layout_marginTop="25dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/username"
        android:layout_marginLeft="50dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="2dp"                
        android:text="user_name"           
        android:textSize="16sp" />
</TableRow>

<TableRow
    android:id="@+id/row2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <EditText
        android:inputType="text"
        android:id="@+id/editUsername"
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:layout_weight="2"
        android:singleLine="true"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="2dip"
        android:layout_marginRight="50dp"   
        android:padding="10dp"/>
</TableRow>

<TableRow
    android:id="@+id/row5"          
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    <CheckBox
        android:id="@+id/remember"
        android:layout_width="wrap_content"      
        android:layout_height="wrap_content"            
        android:button="@drawable/checkbox_selector"      
        android:layout_marginLeft="52dp"
        android:padding="8dp" 
        android:textSize="12sp"
        android:text="remember"
        />
</TableRow>
<TableRow
    android:id="@+id/row6"            
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/login"
        android:layout_width="100dp"
        android:layout_height="35dp"
        android:text="login"                   
        android:textStyle="bold"
        android:layout_marginLeft="102dp"
         />
</TableRow>

于 2012-09-24T09:44:25.813 に答える
0

@Siddharth Leleのコメントリンクを掘り下げた後、このレイアウトが思い通りに機能するようになりました.プラスは、小さなデバイスと大きなデバイスと互換性があることです.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/color_header"
        android:padding="10dp" >

        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/white"
            android:typeface="sans"
            android:textStyle="bold"
            android:text="@string/app_name"/>
    </TableRow>

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_gravity="center_vertical|center_horizontal"
                android:gravity="center">

            <TextView
                android:id="@+id/txtUser"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/login_user"
                android:typeface="sans"
                android:textAppearance="@android:style/TextAppearance.Medium" />

            <EditText
                android:id="@+id/etUser"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="text" >

                <requestFocus />
            </EditText>

            <TextView
                android:id="@+id/txtPassword"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/login_password"
                android:typeface="sans"
                android:textAppearance="@android:style/TextAppearance.Medium" />

            <EditText
                android:id="@+id/etPassword"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPassword" />

            <CheckBox
                android:id="@+id/cbRemember"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:typeface="sans"
                android:text="@string/login_remember" />

            <Button
                android:id="@+id/btnLogin"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="@string/login_login" />

        </LinearLayout>

    </ScrollView>

</LinearLayout>

皆さんの回答に感謝します。確かに私は彼らから何かを学ぶことになります。そのため、すべての回答と @Siddharth Lele からのコメントを +1 します!

于 2012-09-24T10:14:06.437 に答える