2013-07-22 3 views
0

У меня есть линейная компоновка, которая выступает в роли родительского элемента Relative layout. Относительная компоновка состоит из нескольких кнопок и элементов. Я хочу выровнять относительный макет (панель с кнопками) в нижняя часть линейного макета. Линейный макет состоит только из ImageView, и после этого относительная компоновка должна быть выровнена внизу.Выравнивание относительной компоновки в нижней части линейного макета в родительском

Но когда я пытаюсь установить android:layout_alignParentBottom="true" в Relative Layout код IDE Prompts это wrong.How может я достигнуть этого, пожалуйста, помогите

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_horizontal" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="fill_parent" 
     android:layout_height="250dp" 
     android:scaleType="fitStart" 
     android:src="@drawable/jellyfish" /> 

    <RelativeLayout 

     android:layout_width="318dp" 
     android:layout_height="164dp" 
     android:layout_margin="5dp" 
     android:background="@drawable/backgrad" 
     android:orientation="vertical" > 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_marginBottom="20dp" 
      android:layout_marginLeft="34dp" 
      android:onClick="clickme" 
      android:text="Button" /> 

     <ImageButton 
      android:id="@+id/imageButton1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_marginTop="16dp" 
      android:layout_toLeftOf="@+id/button1" 
      android:onClick="textclick" 
      android:src="@drawable/text" /> 

     <Button 
      android:id="@+id/button2" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/button1" 
      android:layout_alignBottom="@+id/button1" 
      android:layout_centerHorizontal="true" 
      android:onClick="wmark" 
      android:text="Save" /> 


    </RelativeLayout> 

</LinearLayout> 

enter image description here

+0

Заявления FWIW типа "android: layout_width =" 318dp "" заставляют меня беспокоиться. Вы должны делать относительные утверждения, а не абсолютные утверждения, где это возможно. Что не так с wrap_content здесь, я не знаю. – SK9

+0

@ SK9 Да, я изменю его. На самом деле я беспокоился об отображении пользовательского интерфейса на более крупных устройствах, таких как планшеты. Там будет много свободного места внизу, поэтому нужно каким-то образом централизовать элементы – techno

+0

возможного дубликата [Как разместить RelativeLayout в нижней части RelativeLayout?] (Http://stackoverflow.com/questions/3492721/how-to-place-a-relativelayout-at-the-bottom-of-a-relativelayout) – rds

ответ

0

Добавьте следующие строки в родительской линейной компоновки XML :

android:gravity="bottom" 
+0

не работает, попробовал добавление к относительной компоновке – techno

+0

Вы пытались добавить его в родительский линейный макет, хотя (с которого вы уже добавили в XML в свой вопрос)? А что значит «не работает»? Хм ... Я подозреваю, что это не даст вам именно то, что вы хотите, потому что вам, вероятно, нужна другая сила тяжести для изображения ребенка. То есть, вполне возможно, вы хотите, чтобы родитель был RelativeLayout, но это зависит от вас. – SK9

+0

Я добавил полный xml раньше, но каким-то образом он не появился. Относительная компоновка (нижняя панель) не выравнивается снизу даже после добавления кода, который вы указали в относительном макете. – techno

1

Возможный дубликат: How to achieve alignParentBottom="true" property in LinearLayout

Когда вы устанавливаете android:layout_alignParentBottom="true", вы пытаетесь использовать методы LinearLayout. Но LinearLayout НЕ предоставляет alignParentBottom.

Ответ в двух экземплярах, говорит заменить

android:layout_alignParentBottom="true" 

по

android:gravity="bottom" 
+1

не работает, попробовал добавить к относительной компоновке – techno

0

Я ответил другую тему, как это, решение поставить View с весом 1 выше вашего относительного расположения, как это :

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

Попробуйте разместить изображение в линейном макете и добавить

android:layout_alignParentBottom="true" 

в вашей относительной компоновке.

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