我正在尝试从屏幕底部开始将5个LinearLayout相互叠放。为了使xml代码简短,我将只讨论底部2个,将一个放置在另一个上面,能够从那里工作其余的工作。
您知道,LinearLayouts嵌套在RelativeLayout中。
我可以使用android:gravity="bottom"
将底部的LinearLayout放到屏幕底部所需的位置。我以为我可以将其用于下一个LinearLayout行,并将其放置在底部行的顶部,但这没有用。当我包含此内容时,该行就会消失在某个地方。
注意顶部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>
答案 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>