【问题标题】:Android/Eclipse: This LinearLayout layout or its RelativeLayout parent is possibly uselessAndroid/Eclipse:此 LinearLayout 布局或其 RelativeLayout 父级可能没用
【发布时间】:2014-03-29 22:27:34
【问题描述】:

我在 Eclipse 上的 Android Application Projet 中收到以下警告:

This LinearLayout layout or its RelativeLayout parent is possibly useless

不知道是什么问题。阅读其他论坛,但他们没有帮助。有什么想法吗?

代码如下:

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

    <LinearLayout
        android:id="@+id/lin_progress_bar"
        android:layout_width="200dp"
        android:layout_height="65dp"
        android:layout_marginLeft="60dp"
        android:layout_marginTop="150dp"
        android:visibility="invisible" >

        <ProgressBar
            android:id="@+id/ProgressBar01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </ProgressBar>

        <TextView
            android:id="@+id/TextView01"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginLeft="30dp"
            android:layout_marginTop="5dp"
            android:gravity="center_vertical"
            android:text="@string/loading"
            android:textColor="#808080"
            android:textSize="17sp"
            android:textStyle="bold" >
        </TextView>
    </LinearLayout>

</RelativeLayout>

【问题讨论】:

  • 这两个嵌套容器真的没用。我会删除 LinearLayout(我总是更喜欢 RelativeLayouts)。
  • 不要使用硬编码的layout_widths 和layout_heights。您的应用程序将在各种设备上运行,如果您使用硬编码值,您可能不会总是获得相同的外观。尽量使用标准的match_parentwrap_content和layout_weights。

标签: android eclipse android-layout


【解决方案1】:

这是您的布局的简化版本:

<?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"
    >
    <ProgressBar
        android:id="@+id/ProgressBar01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="60dp"
        android:layout_marginTop="150dp"
        android:visibility="invisible"
    />
    <TextView
        android:id="@+id/TextView01"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="5dp"
        android:gravity="center_vertical"
        android:text="@string/loading"
        android:textColor="#808080"
        android:textSize="17sp"
        android:textStyle="bold"
    />
</RelativeLayout>

现在它已经获得了平坦度 - 这意味着更好的性能

【讨论】:

    【解决方案2】:

    错误消息意味着 RelativeLayout 包含一个包含实际小部件的 LinearLayout:删除相对布局并仅使用 LinearLayout 会更有效。

    请注意,这是一个警告,有时您确实需要一个无用的布局来让您的应用看起来像您想要的那样(尽管我没有遇到过很多这样的情况)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多