5

I face the nest layout problems and throws some exceptions. The error is "This LinearLayout layout or its LinearLayout parent is useless ...". I know i can ignore it this warning by this setting.

Setting: Build Path->Configure Build Path.... Under Android Lint Preferences look for UselessParent and set it's severity to ignore or click Ignore All.

However, the Eclipse graphical layout cannot show anything and display an error message - "Index:0, Size 0, Exception details are logged in Window > Show View > Error Log".

How can i make the graphical layout shows the nest layout??

Here is my code:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="@drawable/menu_bg2"
        android:orientation="vertical" >

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/menu_item1"
            android:src="@drawable/alarm2x" />

        <ImageButton
            android:id="@+id/imageButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/menu_item2"
            android:src="@drawable/bank2x" />

        <ImageButton
            android:id="@+id/imageButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/menu_item3"
            android:src="@drawable/brief_case2x" />

        <ImageButton
            android:id="@+id/imageButton4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/menu_item4"
            android:src="@drawable/trolley2x" />

        <ImageButton
            android:id="@+id/imageButton5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/menu_item5"
            android:src="@drawable/calculator2x" />

    </LinearLayout>
</LinearLayout>

Thanks all.

Adil Soomro
  • 37,609
  • 9
  • 103
  • 153
KingWu
  • 370
  • 1
  • 4
  • 21
  • What error shows `Error Log`? – Jin35 Jul 18 '12 at 08:48
  • 2
    here what is the use of second layout....... – RajaReddy PolamReddy Jul 18 '12 at 08:49
  • add one more view in Parent layout(may be blank or some usable if any) to remove the warning. In this code the horizontal layout has no use. – Kamal Jul 18 '12 at 08:54
  • Re Jin35: here is my error. http://dl.dropbox.com/u/78582670/error.png Re RajaReddy: I want to play some translation animation for the imageButton in linear layout. I want the buttons move from bottom to top. Do you have any good idea? Re Kamal:the horiontal layout is useful because i will add some view s into it in the future. – KingWu Jul 18 '12 at 09:10

6 Answers6

3

Because in the first LinearLayout, there is only 1 view in it, and it's a LinearLayout.

Here is the illustrated structure:

LinearLayout
    LinearLayout
        ImageButton
        ImageButton
        ImageButton
        ImageButton
        ImageButton
    // You should add another View or ViewGroup for the first LinearLayout

LinearLayout is a subclass of ViewGroup and is intended to group some View(s), at least 2 (CMIIW).

So, the warning was issued because it assumed your first LinearLayout didn't have anything to group or it didn't matter if you omitted it.

Sorry if my explanation in English is bad.

Kiddo
  • 1,167
  • 1
  • 12
  • 23
2

You have two LinearLayout, one out of them is use-less till now. This warning suggests you to remove one of them. like this:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/LinearLayout1"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="@drawable/menu_bg2"
          android:orientation="vertical" >

     <!-- your other ImageView etc.-->
</LinearLayout>
Adil Soomro
  • 37,609
  • 9
  • 103
  • 153
  • Yes, I get it. In fact, why i write in this way is that I want to animate the image buttons to move from bottom to top. I don't want to hard code this animation. How can i do? And do you have the best way to do this? – KingWu Jul 18 '12 at 09:22
  • You can do that with having single LinearLayout. lots of example are there. for example [this post](http://stackoverflow.com/q/4526288/593709) deal with animating button from bottom to top – Adil Soomro Jul 18 '12 at 09:28
2

You can just add this to your parent LinearLayout:

tools:ignore="UselessParent"

By default, Android Studio shows these warnings if they are useless. tools:ignore="UselessParent" prevents this warning from showing up.

0

You could try

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/menu_bg2"
    android:orientation="vertical" >

However I never trust graphical layout in Eclipse.

Edit :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
stuckedunderflow
  • 3,551
  • 8
  • 46
  • 63
0

You have opened 2 linearlayout, but there is only 1 linearlayout closing.

However, the second linearlayout has no sense since you are putting a box inside a box and then inserting items in the second one.

JesusS
  • 1,645
  • 1
  • 18
  • 31
0

Perhaps help you :

android:layout_alignWithParentIfMissing ="true"
A.A
  • 1,138
  • 1
  • 16
  • 29
  • 3
    I think it would be more helpful for the OP and further visitors, when you add some explanation to your intension. – Reporter Sep 23 '14 at 11:26