Android相对布局 - 并不像我想要的那样工作

时间:2014-12-09 19:10:12

标签: android android-layout relativelayout

我现在尝试这个,但它仍然无法运作。我阅读了很多关于相对布局的教程,但我仍然无法做到。请给我一个想法,我能做些什么。我想要一个简单的布局,如图中所示。![在此输入图像描述] [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 个答案:

答案 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" />