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
который делит ваш экран на несколько кадров. НО, опять же, это может усложнить для вас в вашем приложении.