gpt4 book ai didi

Android:带有中间组件的布局展开

转载 作者:行者123 更新时间:2023-11-29 14:55:39 26 4
gpt4 key购买 nike

我正在尝试创建以下布局。

+---------------------+
| Text View |
+---------------------+
| |
| |
| Custom View |
| Expands to |
| extra space |
| |
+---------------------+
|Button1 |Button2 |
+---------------------+

我的布局 xml 如下所示。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView android:text="This is test text." android:id="@+id/statusTxt"
android:layout_width="fill_parent" android:layout_height="wrap_content" />

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/gameView"
android:layout_gravity="bottom">

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/gameButtonView">

<Button android:text="Done" android:id="@+id/doneBtn"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>

<Button android:text="Undo" android:id="@+id/undoBtn"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
</LinearLayout>
</LinearLayout>

我正在以编程方式添加我的自定义 View

LinearLayout gameView = (LinearLayout)this.findViewById(R.id.gameView);
gameView.addView(gameBoardView, 1);

使用当前布局,它最终看起来像这样。

+---------------------+
| Text View |
+---------------------+
|Button1 |Button2 |
+---------------------+
| |
| |
| Custom View |
| Expands to |
| extra space |
| |
+---------------------+

当前布局的作用是将底部按钮固定在自定义 View 上方。关于如何让它呈现我所描述的方式的任何想法?

最佳答案

使用相对布局。将您的 TextView 设置为 alignParentTop="true"。将您的按钮放在 LinearLayout 中,并设置为 alignParentBottom="true",然后将中间的内容设置为 above="buttons"和 below="text"

像这样:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<!-- Text at the top -->
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" />

<!-- Your game play view -->
<View
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/buttons"
android:layout_below="@+id/text" />

<!-- Buttons at the bottom -->
<LinearLayout
android:id="@+id/buttons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">

<Button
android:layout_weight="1"
android:layout_width="0dip"
android:layout_height="wrap_content" />

<Button
android:layout_weight="1"
android:layout_width="0dip"
android:layout_height="wrap_content" />

</LinearLayout>

</RelativeLayout>

关于Android:带有中间组件的布局展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7477855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com