11

私はAndroid 3.1を開発しています。および上記のアプリケーション。

1 つのアクティビティで、そのレイアウトを動的に生成します。私はcontentviewとして 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

プログラムで TableLayouts を追加するには、linearLayout が必要です。

この警告を解決するにはどうすればよいですか?

4

4 に答える 4

14

Lint は警告で正しいです。その唯一の子は RelativeLayout であるため、LinearLayout は何も役に立ちません。LinearLayout を削除します。

<?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 AllLint の警告とエラーはすべて消去されると思います。

于 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 に答える