11

我正在开发 Android 3.1。及以上应用。

在一项活动中,我动态生成其布局。我使用formdetail.xml作为内容视图:

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.formdetail);

    Bundle extras = getIntent().getExtras();
    if (extras != null)
    {
        currentFormId = extras.getString("FormId");
    }
}

formdetail.xml:

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

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
        <Button
            android:id="@+id/downloadFormsButton"
            android:enabled="false"
            android:layout_alignParentLeft="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:text="@string/download_forms_button" />
        <TextView
            android:id="@+id/formErrorMsg"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:textSize="16dp" >
        </TextView>
    </RelativeLayout>

</LinearLayout>

downloadFormsButton并且formErrorMsg必须始终保持形式。

但是使用那个xml我得到这个警告:

This RelativeLayout layout or its LinearLayout parent is useless

我需要 linearLayout 以编程方式添加 TableLayouts。

我该如何解决这个警告?

4

4 回答 4

14

Lint 的警告是正确的,您的 LinearLayout 没有做任何有用的事情,因为它唯一的孩子是 RelativeLayout。删除线性布局:

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

<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/detailLayout"
 android:layout_width="match_parent"
 android:layout_height="match_parent">

 <Button android:id="@+id/downloadFormsButton" 
         android:enabled="false"
         android:layout_alignParentLeft="true"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" 
         android:layout_margin="10dp"
         android:text="@string/download_forms_button" />
 <TextView 
         android:id="@+id/formErrorMsg" 
         android:layout_alignParentRight="true"
         android:layout_alignParentBottom="true"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:padding="10dp"
         android:textSize="16dp" />
</RelativeLayout>
于 2012-04-25T18:20:54.967 回答
8

您要么忽略它,要么右键单击您的项目。单击Build Path->Configure Build Path...。在Android Lint Preferences查找UselessParent并设置它的严重性以忽略或单击Ignore All

编辑:

我收回最后一部分。我认为Ignore All会清除所有 Lint 警告和错误。

于 2012-04-25T16:40:15.900 回答
2

我的应用程序布局也有同样的问题。

我不知道如何以及它是否正确,但是在将背景属性设置为两种布局后,这个问题得到了解决。

现在没有警告并且工作完美。希望它也对你有用。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:background="@drawable/bg"
    android:layout_height="match_parent" >

        <FrameLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:background="@drawable/bg2"
            android:layout_marginTop="10dp" >

            <ImageView
                android:id="@+id/img_BookImage"
                android:layout_width="200dp"
                android:layout_height="200dp"
                android:scaleType="fitXY"
                android:contentDescription="@string/India"
                android:src="@drawable/india" />
        </FrameLayout>

    </FrameLayout>
于 2014-12-06T07:21:42.243 回答
1

这只是一个警告lintLint不知道您稍后会将视图附加到此布局,它会警告您添加了不必要的额外视图(增加了布局深度)。

您应该忽略警告(如果它真的让您感到困扰,这里有一个关于如何从中删除警告的链接lint)。

于 2012-04-25T16:39:05.590 回答