2010-09-27 3 views
8

я следующий в XMLКак разместить Относительное расположение внизу экрана (или линейного макета).?

Я хочу поставить вторую линейную компоновку в нижней части экрана. Как я могу это сделать? Я установил свойство второго относительного расположения в нижней части, но по-прежнему не отображается в нижней части ..

**

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent">  
<RelativeLayout android:id="@+id/RelativeLayout01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
</RelativeLayout> 
<RelativeLayout android:id="@+id/RelativeLayout02" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
</RelativeLayout> 
<RelativeLayout android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:layout_gravity="bottom"> 
</RelativeLayout> 
</LinearLayout> 

** Thanx заранее

+0

Я хочу поставить второе относительное расположение в нижней части экрана – Sandy

ответ

11

Макет вы хотите в нижней части должны иметь:
android:gravity = "bottom"
и его родители должны иметь:
android:layout_height="fill_parent"

+0

я установить и выше свойство Still макет не в нижнем экрана – Sandy

+0

@Sandy Является ли родительский макет «корневым» макетом, то есть полностью заполняет экран? Макет ребенка должен также иметь 'android: layout_height =" wrap_content "'. Проводка кода поможет :-) – fredley

+0

Яг родительский макет полностью заполняет экран. У вас есть андроид: layout_height = "wrap_content" – Sandy

13

Я тоже искал это. Мое только что нашли решение использовать свойство:

android:layout_alignParentBottom="true" 

вместо вашего существующего android:layout_gravity="bottom"

К сожалению, это с моим макетом работает только при наличии дополнительного RelativeLayout как корневой макет, а остальные добавляют к нему. Возможно, это не всегда так, но с LinearLayout (даже когда сказано, чтобы использовать fill_parent), он использовал только высоту всех добавленных элементов и поместил нижний колонтитул внизу.

Я пришел к этому решению, глядя на этот смежный вопрос: How do I achieve the following result using RelativeLayout?

EDIT здесь, потому что формат в ответ комментария потерялся: Вы имеете в виду, вы не можете переписать его, или что он не работает ?

У меня был вертикальный LinearLayout, и моя новая структура xml выглядит (без параметров макета размера и т. Д.) Sth. как это:

<RelativeLayout> 
    <RelativeLayout 
     android:id="@+id/RelativeLayout01"> 
    </RelativeLayout> 
    <RelativeLayout 
     android:id="@+id/RelativeLayout02" 
     android:layout_below="@+id/RelativeLayout01"> 
    </RelativeLayout> 
    <RelativeLayout 
     android:layout_below="@+id/RelativeLayout02" 
     android:layout_alignParentBottom="true"> 
    </RelativeLayout> 
</RelativeLayout> 
+0

Thanx для ответа, но его не работает с моей компоновкой. – Sandy

+0

Вы уже пробовали переписать свой xml на мой новый пример? Если это не работает, возможно, вы можете предоставить более подробную информацию о своем желаемом макете. – sunadorer

0
<Linearlayout android:layout_height="fill_parent" 
android:orinationtation="vertical" 
android:layout_width="fill_parent"> 

<RelativeLayout android:layout_height="0dp" 
android:layout_width="fill_parent" 
android:weight="1"> 
</RelativeLayout> 

<RelativeLayout 
android:layout_height="0dp" 
android:layout_width="fill_parent" 
android:weight="1" 
> 
</RelativeLayout> 



</Linearlayout > 
1

Вы должны поставить View до вашего последнего макета с весом 1, и это поставит его на дно. Как это:

<View android:id="@+id/emptySpace" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    /> 
+0

Это должен быть правильный ответ! –

1

Попробуйте использовать:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffb3e5fc" 
    android:id="@+id/linearLayout1"> 
<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="bottom"> 
<Button 
    android:id="@+id/button1" 
    android:text="Left" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_toLeftOf="@+id/centerPoint" /> 
<TextView 
    android:id="@+id/centerPoint" 
    android:text="" 
    android:layout_width="1dip" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" /> 
<Button 
    android:id="@+id/button2" 
    android:text="Right" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_toRightOf="@+id/centerPoint" /> 
</RelativeLayout> 
</LinearLayout> 

It produces something that looks like this

Смежные вопросы