如何在另一个水平LinerLayout的顶部放置水平LinearLayout?

时间:2018-08-16 16:19:17

标签: android android-layout

我正在尝试从屏幕底部开始将5个LinearLayout相互叠放。为了使xml代码简短,我将只讨论底部2个,将一个放置在另一个上面,能够从那里工作其余的工作。

您知道,LinearLayouts嵌套在RelativeLayout中。

我可以使用android:gravity="bottom"将底部的LinearLayout放到屏幕底部所需的位置。我以为我可以将其用于下一个LinearLayout行,并将其放置在底部行的顶部,但这没有用。当我包含此内容时,该行就会消失在某个地方。

这是一分钟的情况image

注意顶部7、8、9(我要在底部一行的顶部)中的三个按钮。看起来像在正确位置的行只在那儿,因为我使用android:layout_marginTop="xxxdp"手动将它们放在那里,就像我之前对所有行所做的一样,但是当我运行它时,底部的两行被推出了视线。正如我提到的那样,我试图用重力校正最下面的一行。

这是xml代码。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Game01">

<TextView
    android:id="@+id/text_score"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="16dp"
    android:text="@string/text_score"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<LinearLayout
    android:id="@+id/fifthRow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <EditText
        android:id="@+id/eText_scoreEntry"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_marginBottom="10dp"
        android:layout_weight="1"
        android:background="@android:color/darker_gray"
        android:clickable="false"
        android:ems="10"
        android:linksClickable="false"
        android:longClickable="false"
        android:text="@string/edtText_3DartScore"
        android:textAlignment="center"
        android:textStyle="italic"
        />

    <Button
        android:id="@+id/btn_delete"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_backspace" />
</LinearLayout>

<LinearLayout
    android:id="@+id/forthRow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Button
        android:id="@+id/btn_1"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_1"
        android:visibility="visible"/>

    <Button
        android:id="@+id/btn_2"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_2"
        android:visibility="visible"/>

    <Button
        android:id="@+id/btn_3"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_3"
        android:visibility="visible" />

</LinearLayout>

<LinearLayout
    android:id="@+id/thirdRow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Button
        android:id="@+id/btn_4"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_4"
        android:visibility="visible"/>

    <Button
        android:id="@+id/btn_5"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_5"
        android:visibility="visible"/>

    <Button
        android:id="@+id/btn_6"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_6"
        android:visibility="visible" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="horizontal"
    android:id="@+id/secondRow"
    android:layout_above="@+id/bottomRow">

    <Button
        android:id="@+id/btn_7"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_7"/>

    <Button
        android:id="@+id/btn_8"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_8"/>

    <Button
        android:id="@+id/btn_9"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_9"/>
</LinearLayout>

<LinearLayout
    android:id="@+id/bottomRow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="bottom">

    <Button
        android:id="@+id/btn_treble"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_treble" />

    <Button
        android:id="@+id/btn_0"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_0"/>

    <Button
        android:id="@+id/btn_enter"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="onClick"
        android:text="@string/btn_enter"/>

</LinearLayout>

1 个答案:

答案 0 :(得分:1)

您必须为所有5种线性布局提供ID,并通过此属性android:layout_above="@id/layout_below"将其彼此放置。同样,所有5个都必须具有高度wrap_content

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Game01">

    <TextView
        android:id="@+id/text_score"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="@string/text_score"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <LinearLayout
        android:id="@+id/fifthRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_above="@id/forthRow">

        <EditText
            android:id="@+id/eText_scoreEntry"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_marginBottom="10dp"
            android:layout_weight="1"
            android:background="@android:color/darker_gray"
            android:clickable="false"
            android:ems="10"
            android:linksClickable="false"
            android:longClickable="false"
            android:text="@string/edtText_3DartScore"
            android:textAlignment="center"
            android:textStyle="italic"
            />

        <Button
            android:id="@+id/btn_delete"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_backspace" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/forthRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_above="@id/thirdRow">

        <Button
            android:id="@+id/btn_1"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_1"
            android:visibility="visible"/>

        <Button
            android:id="@+id/btn_2"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_2"
            android:visibility="visible"/>

        <Button
            android:id="@+id/btn_3"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_3"
            android:visibility="visible" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/thirdRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/secondRow"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn_4"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_4"
            android:visibility="visible"/>

        <Button
            android:id="@+id/btn_5"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_5"
            android:visibility="visible"/>

        <Button
            android:id="@+id/btn_6"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_6"
            android:visibility="visible" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:id="@+id/secondRow"
        android:layout_above="@+id/bottomRow">

        <Button
            android:id="@+id/btn_7"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_7"/>

        <Button
            android:id="@+id/btn_8"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_8"/>

        <Button
            android:id="@+id/btn_9"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_9"/>
    </LinearLayout>

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

        <Button
            android:id="@+id/btn_treble"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_treble" />

        <Button
            android:id="@+id/btn_0"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_0"/>

        <Button
            android:id="@+id/btn_enter"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="onClick"
            android:text="@string/btn_enter"/>

    </LinearLayout>
</RelativeLayout>