问题标签 [view-hierarchy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
653 浏览

android - FrameLayout 不尊重绘制顺序

我有这个布局层次结构:

使用Android 设备监视器我已经转储了视图层次结构,并且我已经实现了这一点:

查看转储 1

正如预期的那样。但是,如果我包括另外两个布局:

注意:a_framelayout包含 aLinearLayoutanother_framelayout包含 a View

我明白了:

查看转储 2

这两个布局不应该分别具有 3 和 4 的索引而不是 0 和 2 吗?为什么是ScrollView他们之间?

如果我将布局更改为:

我得到:

查看转储 3

这更有意义,但现在a_framelayout被交换了another_framelayout,为什么?

尽管发生了这种奇怪的布局行为,但所有视图都在屏幕中正确呈现,并且布局正常工作。

有什么线索吗?
谢谢你的时间。

0 投票
3 回答
591 浏览

ios - 最佳实践是什么:多个 UIView 或多个 UIViewController

我计划开发一个包含多个页面的清单应用程序。每个页面都将显示一个简单的是/否问题列表和页面底部的“下一步”按钮。

在应用程序设计方面,我看到了两个选项

  1. 一个UIViewController 带有一堆整页 UIView(分层,z-index)。从第 1 页切换到第 2 页我将使用sendSubviewToBack

  2. UIViewController 每页一个。从第 1 页切换到第 2 页,我将介绍新的 ViewController。

问题:这两种方法的优点和缺点是什么。我监督过的任何其他选择?你有什么经验和建议?

0 投票
0 回答
667 浏览

android - 由于 Android 中的视图层次结构太深导致 StackOverflowError

我们在 Play 商店中获得了一些此类崩溃报告:

我们在我们的一个测试设备上遇到了这样一个异常,它出现了,这是因为视图层次结构的最大深度。我知道最大深度的建议是<10。然而,如果你有一个相当复杂的应用程序,这个值就相当大了。我们在带有 Fragments 的 Main-Acitivity 上使用 AppCompat v21 和 ViewPager。

出于这个原因,我认为我们有很多“毫无意义”的观点,它们只是封装了一个孩子。或者以下布局的目的是什么:

-NoSaveStateFrameLayout

-NativeActionModeAwareLayout

-FitWindowsFrameLayout

总的来说,包括 PhoneWindowDecorView 在内的总深度为 23。我们的 Viewtree 看起来像这样:

图片来自层次视图

来自 RootView 的第一个视图:

图片来自层次视图

尽管如此,我们的应用程序甚至可以在非常旧且性能不佳的 Android 2.3 设备上运行。为什么在现实世界中仍然会出现问题。

0 投票
1 回答
160 浏览

ios - 窗帘显露视图

我正在尝试实现以下具有挑战性的效果:我想将白色“窗帘”向下移动以露出红色框。(注意:在下面的截图中,窗帘是白色的,背景是灰色的)

问题出在视图层次结构中。

为了让盒子隐藏在初始位置,它必须放在窗帘后面,但为了在最终位置显示,它必须在窗帘的顶部。

我怎样才能“作弊”,让它看起来像窗帘真的用流畅的动画揭示了盒子?

**前** **后**

谢谢!

0 投票
1 回答
184 浏览

ios - 插入 iOS 设备时如何检查“调试视图层次结构”?

我知道“调试视图层次结构”适用于 32 位 Mac 应用程序项目,它不支持所有类型的 iOS 模拟器。但我可以在一些 iOS 模拟器上使用。

现在,我正在使用AVCaptureVideoPreviewLayer. 显然它在 iOS 模拟器上不起作用。

所以我的问题是,有没有办法在 iOS 设备上进行检查?你能给我一个建议吗?

0 投票
0 回答
186 浏览

android - Android Fragments:恢复以编程方式添加的视图

我有两个片段:fragmentAfragmentB

fragmentA中,以编程方式添加了一些视图

如果从fragmentA我转到fragmentB然后我回到fragmentA,所有以编程方式添加的视图都不再存在

在视图层次结构中恢复以编程方式添加的视图的方法是什么?

0 投票
0 回答
45 浏览

android - 一个可以在android上移动和调整大小的视图

我正在制作一个应用程序,它应该允许用户动态地使 ImageViews 存在,将它们移动到他们喜欢的地方,调整它们的大小并弄乱所述视图的层堆叠。

层堆叠我确实对如何实现有一些粗略的想法,仍然欢迎教程。

我正在绘制空白的是可调整大小的 ImageView 并且没有运气尝试找到该教程或提供此类内容的 github 项目。

我对 android 编程并不是 100% 的新手,但一些更高级的概念仍然飞过我的头顶,以至于我无法正确地对我找到的一对“close but no cigar”课程进行逆向工程。

为了对我正在寻找的内容进行视觉解释,这里是 WayCooler,它正是我需要做的。

冷却器

我很确定我只是没有使用正确的搜索词来找到我需要的东西,但如果有人能指出我正确的方向,我会非常感激。

0 投票
1 回答
816 浏览

ios - 以编程方式设置自动布局约束

我不知道如何解决这个问题:我想创建一个匹配游戏,其中卡片的大小取决于设备。

我想我会创建一个 contentView,我将其固定在 rootView 的顶部和底部,边距为 20,并将其对齐到它的中心。然后我给它一个 3/4 的纵横比(对于 3 行和 4 列)。

这完美无缺。(哇哦!)然后我想创建一个卡片,其宽度为 contentView 的四分之一,高度为三分之一:

那里代码中断,我收到消息:

视图层次结构没有为约束做好准备: NSLayoutConstraint:0x78f1b290 Meeres_Memo_temp_caseinsensitive_renamery.Card:0x78f41820.height == UIView:0x78f49fc0.height 添加到视图时,约束的项必须是该视图(或视图本身)的后代。如果在组装视图层次结构之前需要解决约束,这将崩溃。

有没有可能,做我想做的事?

更新:

我刚刚发现我的错误。我在 thisCard 中添加了 heightConstraint 和 widthConstraint,但需要将它们添加到视图层次结构中更高的相关视图,在本例中为 contentView,如下所示:

0 投票
1 回答
50 浏览

ios - 如何将导航栏和 tableView 分开,而不是将导航栏放在 tableView 顶部

我想要它,这样我的导航栏就不会位于我的表格视图之上,而是与它分开,因此每个 tableView 单元格都以相等的比例显示。实际上,我似乎无法更改它,我尝试以编程方式手动添加它并尝试在视图层次结构中更改它,但我无法做到。我想有一个简单的解决方案我只是无法弄清楚那是什么?下面是我的代码。

0 投票
1 回答
40 浏览

c# - 控件不响应鼠标操作,因为它位于视图层次结构的底部

我有一个带有以下 DataTemplate 的 ContentControl

我希望在 oxy:PlotView 上显示一些文本,但如果这样做,oxy:PlotView 将停止响应鼠标操作(缩放、单击等)。

如何显示标签悬停在另一个控件上,但让底部控件仍然响应鼠标操作?