RelativeLayout inside LinearLayout?

I was wondering what I'm doing wrong here, why do the buttons surrounding these in RelativeLayout cause an error? I didn't edit the layouts much, can I not just stick to a relative or linear layout in it?

If I do not surround the buttons in the layout, they appear below each other, I'm just trying to experiment so that they are next to each other horizontally.

I think the way I made this whole layout is bad, because vertically it looks rather squishy.

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/MainLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/topButtons" android:layout_margin="4dip" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@+id/deviceConnect" android:layout_margin="8dip" android:layout_weight="3" android:layout_width="fill_parent" android:layout_height="match_parent" android:text="Connect2"/> <LinearLayout android:orientation="vertical" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:orientation="horizontal" android:layout_margin="8dip" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:text="Connected Adapter:" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Spinner android:id="@+id/deviceSpinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawSelectorOnTop="true"/> <TextView android:id="@+id/currentSettings" android:layout_marginLeft="8dip" android:text="Current Settings: Not Connected" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:orientation="horizontal" android:layout_margin="8dip" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:text="Baud:" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Spinner android:id="@+id/baudSpinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_margin="8dip" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:text="Data:" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Spinner android:id="@+id/dataSpinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_margin="8dip" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:text="Parity:" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Spinner android:id="@+id/paritySpinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_margin="8dip" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:text="Stop:" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Spinner android:id="@+id/stopSpinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true"/> </LinearLayout> </LinearLayout> </LinearLayout> <Button android:id="@+id/updateSettings" android:layout_margin="8dip" android:layout_weight="3" android:layout_width="fill_parent" android:layout_height="match_parent" android:text="Update\nSettings"/> </LinearLayout> <RelativeLayout> <Button android:id="@+id/Command" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Test Command"/> <Button android:id="@+id/Command" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Test Command"/> <Button android:id="@+id/Command" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Test Command"/> <Button android:id="@+id/Command" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Test Command"/> <Button android:id="@+id/Command" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Test Command"/> </RelativeLayout> <jackpal.androidterm.emulatorview.EmulatorView android:id="@+id/emulatorView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:focusable="true" android:focusableInTouchMode="true" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0" android:orientation="horizontal" > <EditText android:id="@+id/term_entry" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:singleLine="true" android:imeOptions="actionNone|flagNoExtractUi" android:inputType="text|textImeMultiLine" /> <Button android:id="@+id/term_entry_send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0" android:text="@string/entry_send" /> </LinearLayout> 

+7
source share
3 answers

As others have already pointed out, you need to define layout_width and layout_height for your RelativeLayout . This should fix your mistake if there are no other problems that you have. But I thought it was worth noting that DOCS talks about layouts

RelativeLayout is a very powerful user interface development tool because it eliminates nested view groups and keeps the layout hierarchy flat, which improves performance. If you find that you are using several nested LinearLayout groups, you can replace them with one RelativeLayout.

You have a lot of nested LinearLayout , so you can use RelativeLayout for better performance and readability. You can also use android:orientation="horizontal" in a nested LinearLayout to get your buttons next to each other. But, again, RelativeLayout might be better in your situation, rather than having all the nested layouts.

+6
source

Your relativeLayout has no size.

Define layout_height and layout_width for it

+3
source
  <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> 
+2
source

All Articles