我现在尝试这个,但它仍然无法运作。我阅读了很多关于相对布局的教程,但我仍然无法做到。请给我一个想法,我能做些什么。我想要一个简单的布局,如图中所示。![在此输入图像描述] [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>
答案 0 :(得分:0)
使用RelativeLayout
最简单的方式将小部件放置到屏幕上。 然而,您可能需要一些时间才掌握它。如果您使用图形工具设计布局,则会更难。
尝试在 XML文本中对其进行编辑。请务必使用RelativeLayout
阅读您可以访问的所有选项的this Android Dev Tutorial。
我相信你确实检查了它,但我也很确定你只是在寻找明显的解决方案。有时,一些不太明显的选项会引导您实现目标 - 所以请耐心等待并尝试在教程的帮助下从头开始。
否则你也可以使用FrameLayout
将屏幕划分为几帧。 但是,再一次,它可能会使您的应用程序中的内容变得复杂。
答案 1 :(得分:0)
首先,为了更容易,删除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" />
使用 layout_alignParentBottom 将所有按钮放在垂直LinearLayout中:
<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" />