gpt4 book ai didi

java - 什么控制着 UI 屏幕上显示的 View 顺序?

转载 作者:行者123 更新时间:2023-12-01 15:59:40 26 4
gpt4 key购买 nike

我有一个应用程序,其布局使用以下 View 对象。 2 个微调器、2 个按钮、1 个搜索栏和一个自定义 View 对象,该对象基本上是我绘制的 Canvas 。

出于某种原因,微调器和搜索栏绘制在 Canvas 顶部,但 2 个按钮却没有绘制。我很困惑为什么会这样。

那么,这个顺序是如何确定的呢?

谢谢。

编辑:根据请求的 XML(这是在我将自定义 View 移动到顶部以修复问题之前)。如果订单应该是基于 XML 的,那么自定义 View 应该覆盖旋转器,但它没有覆盖。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<Spinner
android:id="@+id/cc_component"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:drawSelectorOnTop="true"
android:prompt="@string/cc_component_spinner" />

<TextView
android:id="@+id/desc"
android:text="@string/step1_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dip"
android:visibility="gone"
android:layout_centerHorizontal="true"
android:textSize="25sp"/>

<Button
android:id="@+id/switch_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"/>

<com.cmllc.zcc.CCView
android:id="@+id/cc"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<Button
android:id="@+id/switch_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/rightarrow1" />

<Spinner
android:id="@+id/component_color"
android:layout_above="@+id/switch_color"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:drawSelectorOnTop="true"
android:prompt="@string/component_color_spinner" />

<SeekBar
android:id="@+id/switch_color"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:max="100"
android:minWidth="200dip"
android:progress="50"/>

</RelativeLayout>

最佳答案

它应该只是它们添加到 View 中的顺序。除此之外,您可以使用View.bringChildToFront()

查看这篇文章:Defining Z order of views of RelativeLayout in Android

post here 中由 Google 的 Android 开发人员 Dianne Hackborn 撰写,她在 z 顺序行为方面也指出了同样的情况。

我实现了您的布局,或者在没有您的所有资源和自定义 View 对象的情况下尽可能接近地实现了您的布局,并且我得到了我所除外的结果。第一个微调器、 TextView 和按钮出现在自定义对象下方,我使用以下内容进行模仿:

<TextView
android:id="@+id/cc"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#880000FF" />

然后我在顶部看到第二个按钮、第二个微调器和搜索栏。您对自定义 View 做了什么奇怪的事情吗?这或者可能是由于后来操纵你的观点而发生的事情。

编辑:我仔细检查过,确实看到了上面描述的显示内容

关于java - 什么控制着 UI 屏幕上显示的 View 顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4282216/

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