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 useless第 29 行(第 3 线性布局)。

哪个是实现我想要的正确方法?

谢谢!

4

4 回答 4

2

通过警告,系统只想说你有空间优化你的布局代码。

注意警告是个好习惯。

从下面的 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

使用表格布局

  <?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 回答
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 回答
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 回答