Android Relative Layout - работает не так, как я хочу

Я пытаюсь это сейчас дни, и это все еще не работает. Я прочитал много уроков по Относительному расположению, но я все еще не могу сделать это. Пожалуйста, дайте мне идею, что я могу сделать. Я хочу простой макет, как на картинке.![Введите описание изображения здесь][1]

редактировать: похоже, я не могу загрузить изображения...:(

Это макет для простого приложения викторины с этими виджетами друг под другом. ProgressBar, TextView для вопроса, 4 кнопки для ответов. TextView должен занимать все место, в котором другие виджеты не нужны. Кнопка должна быть всегда в конце.

Я попытался с alignParentTop, Bottom, вложенными LinearLayouts, и он все еще не работает. Что я могу сделать? Было бы ДЕЙСТВИТЕЛЬНО ДЕЙСТВИТЕЛЬНО здорово иметь идею? Большое спасибо!

Хорошая идея: я загрузил изображение: http://imgur.com/Z0YmLw2

Вот актуальный код. (Я редактировал это около 20 раз)

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <ProgressBar
        android:id="@+id/answerProgressBar"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

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

    <ImageView
        android:id="@+id/questionImageView"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/countdownTextView"
        android:layout_margin="5dp"
        android:background="@drawable/ic_launcher"
        android:scaleType="fitCenter" />

    <TextView
        android:id="@+id/questionTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/answerProgressBar"
        android:layout_margin="5dp"
        android:layout_toRightOf="@id/questionImageView"
        android:text="jfh rhguijfhg fhge hugutbh r rut hruteruzt dkjfh uzdt ggu zguzg zuh ftz huuh rh grhtughrtu thiohjriwetk lkj rgjrjkrjek"
        android:textSize="22dp" />


        <Button
            android:id="@+id/answert1Button"
            style="@style/answerButton"
            android:text="answer 1" />


        <Button
            android:id="@+id/answer2Button"
            style="@style/answerButton"
            android:text="answer 2" />


        <Button
            android:id="@+id/answer3Button"
            style="@style/answerButton"
            android:text="answer 3" />

        <Button
            android:id="@+id/answer4Button"
            style="@style/answerButton"
            android:text="answer 4 Butto d uzrr rd drtd gzugt ffzft drtn" />


</RelativeLayout>

2 ответа

Во-первых, чтобы сделать это проще, удалите countdownTextView и questionImageView, и давайте попробуем.

Я думаю, вам нужно разместить атрибут layout_alignParentTop с ProgressBar:

<ProgressBar
    android:id="@+id/answerProgressBar"
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true" />

И поместите все кнопки в вертикальный LinearLayout с layout_alignParentBottom:

<LinearLayout
    android:id="@+id/answerButtons"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="vertical" >

    <Button
        android:id="@+id/answerButton1"
        style="@style/answerButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="answer1" />

    (...)

</LinearLayout>

И наконец, TextView должен иметь атрибуты layout_below и layout_above с настройкой layout_height = "match_parent":

<TextView
    android:id="@+id/questionTextView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="R.id.answerProgressBar"
    android:layout_above="R.id.answerButtons"
    android:text="blah blah blah" />

С RelativeLayout это самый простой способ разместить ваши виджеты на экране. Тем не менее, это может занять некоторое время, пока вы не освоите его. Поскольку, если вы разрабатываете свой макет с помощью Graphic Tool, это будет сложнее.

Попробуйте отредактировать его в XML Text. Обязательно прочитайте это учебное пособие по Android для всех опций, к которым вы можете получить доступ, используя RelativeLayout, Я уверен, что вы это проверили, но я также уверен, что вы искали только очевидные решения. Иногда некоторые неочевидные варианты приведут вас к вашей цели - так что наберитесь терпения и попробуйте сделать это с нуля с помощью учебника.

В противном случае вы также можете использовать FrameLayout который делит ваш экран на несколько кадров. НО, опять же, это может усложнить для вас в вашем приложении.

Другие вопросы по тегам