Android中的线性和相对布局

时间:2013-06-29 10:58:57

标签: android android-layout

我想在活动结束时显示一个按钮栏。我创建了一个名为:batton_bar_ref.xml的布局:

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@drawable/shape_blue_light_horizental_gradiant_notrounded"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingBottom="10dip"
        android:paddingTop="10dip" >

        <Button
            android:id="@+id/pay_button"
            android:layout_width="100dip"
            android:layout_height="50dip"
            android:text="@string/pay"
            android:textSize="16sp"
            android:textStyle="bold" >
        </Button>
    </LinearLayout>

</RelativeLayout>

并将<include layout="@layout/button_bar_ref"/>添加到另一个布局。

显示警告信息:

This LinearLayout layout or its RelativeLayout parent is useless; transfer the background attribute to the other view.

你能告诉我怎样才能解决这个问题?

补遗:

  1. 按钮栏应位于屏幕的末尾。
  2. 请注意,线性布局具有背景。

5 个答案:

答案 0 :(得分:2)

建议通过删除不需要的标记来优化布局。在您的情况下,由于除了LinearLayout而在RelativeLayout下没有任何子项,因此这个特定的布局设计得不是很正确。

首先,您可以忽略此警告,一旦您成功设计了计划包含此布局文件的布局文件,您就会意识到可以消除此文件中声明的布局之一。

答案 1 :(得分:1)

删除相对布局。

<?xml version="1.0" encoding="utf-8"?>

    <LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@drawable/shape_blue_light_horizental_gradiant_notrounded"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingBottom="10dip"
        android:paddingTop="10dip" >

    <Button
        android:id="@+id/pay_button"
        android:layout_width="100dip"
        android:layout_height="50dip"
        android:text="@string/pay"
        android:textSize="16sp"
        android:textStyle="bold" >
    </Button>
</LinearLayout>

答案 2 :(得分:0)

尝试从xml文件中删除RelativeLayout标记

答案 3 :(得分:0)

当布局只有一个也是布局的子项时,会触发此警告。在这种情况下,可以毫无问题地移除其中一个。建议删除这些冗余布局,因为它们会降低UI的整体性能。

在您的情况下,没有使用RelativeLayout。如果删除它,将不会有任何更改。所以这个警告正在显示。但这只是一个警告。使用此

没有任何害处

答案 4 :(得分:0)

请使用以下代码修复您的问题。

<?xml version="1.0" encoding="utf-8"?>

<Button
    android:id="@+id/pay_button"
    android:layout_width="100dip"
    android:layout_height="50dip"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    android:text="@string/pay"
    android:textSize="16sp"
    android:textStyle="bold" >
</Button>