Android RelativeLayout

1

Я очень новичок в разработке Android, и я пытаюсь понять, как использовать тег RelativeLayout для размещения моих просмотров. Моя цель - иметь большой TextView слева, с двумя кнопками ButtonViews справа от него, уложенными друг на друга. Здесь используется код XML, который я использую:

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/main_layout"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:background="@drawable/wood_tile">
       <TextView
          android:id="@+id/life_counter"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:text="00" />
       <Button android:text="@string/button_up"
          android:id="@+id/button_up"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_toRightOf="@id/life_counter"/>
       <Button android:text="@string/button_down"
          android:id="@+id/button_down"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" 
          android:layout_below="@id/button_up"/>
    </RelativeLayout>

Я чувствую, что я не должен правильно использовать тег. Может кто-нибудь объяснить, как это работает? Спасибо заранее.

Теги:

1 ответ

2
Лучший ответ

У вас есть ширина TextView с левой стороны, установленная на fill_parent, это заставит его потреблять весь экран. Все, что находится справа от него, будет за пределами экрана. Используйте wrap_content или определенную ширину для элементов в относительной компоновке.

Ваш подход тоже немного не работает. Если вы хотите, чтобы две кнопки были выровнены вправо от экрана, используйте это:

<RelativeLayout 
   android:id="@+id/main_layout"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

   <TextView
      android:id="@+id/life_counter"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="00" />

   <Button android:text="Button Up"
      android:id="@+id/button_up"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentRight="true"/>

   <Button android:text="Button Down"
      android:id="@+id/button_down"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true"
      android:layout_below="@+id/button_up"/>
</RelativeLayout>
  • 0
    Спасибо, теперь все виды видны! Что касается вашей второй части, то, что я на самом деле хочу сделать, это центрировать все три, а не выравнивать их влево и вправо соответственно. Я должен выяснить, как это сделать тоже.
  • 1
    Чтобы расположить их по центру, вам нужно поместить их во вложенный объект RelativeLayout с атрибутом android:layout_centerInParent="true . См. Это решение .
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню