gpt4 book ai didi

android - Relativelayout - 如何使用嵌套的 RelativeLayout block

转载 作者:行者123 更新时间:2023-11-30 02:45:02 29 4
gpt4 key购买 nike

我正在尝试将我的应用布局从 LinearLayout 切换到 RelativeLayout。对我来说,保持良好的代码结构很重要,我认为如果我有一个父级 RelativeLayyout 用于整个屏幕,然后嵌套包含 View 的相对布局,它会更具可读性。

例如,我有一个包含 Spinner 的 RelativeLayout,然后在其下有一个显示与 date 关联的 TextView 和 ImageView 的 block ,在其下我有另一个包含与时间相关的 View 的 Relativelayout。

这就是我在使用 LinearLayout 时组织布局的方式。我想要与 Relativelayout 相同的组织。见下文

|-----------------------------| 
| (SPINNER) textview |
|-----------------------------|
| (DATE) textView imageview |
|-----------------------------|
| (TIME) textview imageview |
|-----------------------------|

也就是说—— child 被组织在一个子RelativeLayout(嵌套)中。我想我可以通过使用 anchor ID 将各个 RealtiveLayouts 放在彼此之下然后使用

android:layout_below="@+id/relativeLayoutDate"

那是第三 block ——时间应该放在日期 block 下面

但显然我做错了什么,因为所有 View 现在都在屏幕的最上角。

我在这里发布了 xml-layout 文件的一部分。如果有人知道出了什么问题以及如何解决它,我会很高兴。

 <?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" >

<!-- spinner -->
<RelativeLayout
android:id="@+id/relativeLayoutSpinner"
android:layout_width="match_parent"
android:layout_height="match_parent" >


<Spinner
android:id="@+id/planets_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

<TextView
android:id="@+id/spinnerrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/spinnerrow"/>

</RelativeLayout>


<!-- date -->
<RelativeLayout
android:id="@+id/relativeLayoutDate"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/relativeLayoutSpinner">

<TextView
android:id="@+id/textLabel_setDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="set date: "
android:layout_marginTop="25dp"/>

<ImageView
android:id="@+id/dateImg"
android:layout_width="60dp"
android:layout_height="64dp"
android:layout_marginLeft="8dp"
android:layout_toRightOf="@+id/textLabel_setDate"
android:src="@drawable/date"/>

<TextView
android:id="@+id/setDate_txtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:layout_marginLeft="8dp"
android:layout_toRightOf="@+id/dateImg"
android:layout_centerInParent="true" />

<ImageView
android:id="@+id/uncheckedImg"
android:layout_width="25dp"
android:layout_height="40dp"
android:layout_marginLeft="100dp"
android:layout_gravity="right"
android:layout_toRightOf="@+id/setDate_txtView"
android:src="@drawable/unchecked"/>


</RelativeLayout>


<!-- time -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/relativeLayoutDate"
>

<TextView
android:id="@+id/textLabel_setTime"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginTop="20dp"
android:text="set time: " />

<ImageView
android:id="@+id/timeImg"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginLeft="8dp"
android:layout_toRightOf="@+id/textLabel_setTime"
android:src="@drawable/time"/>

<TextView
android:id="@+id/setTime_txtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginLeft="8dp"
android:layout_toRightOf="@+id/timeImg"
android:layout_centerInParent="true" />
</RelativeLayout>

最佳答案

在您对所有 RelativeLayout 使用 match_parent 的代码中,不要对所有子布局使用 match_parent。它会隐藏以前的。

android:layout_width="match_parent"
android:layout_height="match_parent"

仅供父级使用,其余应为 wrap_content

关于android - Relativelayout - 如何使用嵌套的 RelativeLayout block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25200153/

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