- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个包含大量自定义 View 的应用程序,但遇到了其中一个非常复杂的性能问题。他们用于测量和绘图的时间太长(>= 30ms 典型值)。提供更多详细信息:这是一个自定义 ViewGroup
(扩展 RelativeLayout
),带有自定义 View (虽然扩展了 RelativeLayout
)作为其子项。
所以我突然想到什么可能是摆脱这种性能问题的更好/更快的方法:优化子项和布局或切换到完全自定义的绘制 View (线条、矩形和类似的东西) ?
你们中有人有这方面的经验吗?或者甚至有人做了一些基准测试并愿意分享它们?
最佳答案
简单的方法是致力于简化和扁平化当前的 View 层次结构,也许您可以使测量和绘图过程更便宜(或至少体面)。你没有发布布局,所以没有什么具体要说的,我看到你在 RelativeLayouts
中提到了 RelativeLayouts
,也许你可以删除一个并移动 View 向上一层(即使以添加其他辅助 View 为代价),每一层都很重要(尤其是嵌套 RelativeLayouts
)。您可能已经知道,布局中的 merge
和 include
标签可能非常有用。
RelativeLayout
是作为通用小部件构建的,因此它很可能无法实现自定义设计布局的性能。让您当前的布局扩展 RelativeLayout
以扩展 ViewGroup
并手动实现子项的测量和布局会更有意义,特别是因为您可能知道您的用例场景应用程序(例如 RelativeLayout
总是需要处理它可能存在的所有大小限制情况,另一方面,如果您知道自定义 View 将具有一定的大小限制,那么您的自定义布局可以更快地处理这个问题尺寸)。
与完全自定义的绘制 View 相关,它是一个选项,但它取决于布局的复杂性。
Or even some done some benchmarks and is willing to share them?
我看不出各种 View 基准(很可能不适用于您的特定情况)有何帮助。
关于android - 性能 : ViewGroup with Children VS. 自定义绘制 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20656876/
假设我想在存储在变量中的特定表中导航。 我想在表的 thead 中找到 tr 中的所有输入。 如果我有表的 ID,我会这样做 - $('#mytable thead tr input') 但是假设我已
我是 React 新手,我正在尝试了解一般语法的工作原理,但不确定在这里提问是否合适。以下是我的一个简单标题组件的代码。 export default class Title extends Comp
我正在尝试实现在树结构中获取 child 的 child 的可能性。 这是我想要的例子。 到目前为止我做了什么。 class Children(list): def __init__(self
我一直在尝试让它工作一段时间,但不确定如何执行以下操作。我的表单组件有包含常规 html 标记和输入的子组件。如果 child 是输入,我想添加 attachToForm 和 detachFromFo
在本文档中 https://flutter.dev/docs/development/ui/layout#nesting-rows-and-columns 他们使用 children : 但是在 An
即使我只向表中添加一项内容,我似乎也无法弄清楚为什么会显示重复的子项添加错误。 有 3 个主要类: WindowTease:加载舞台并调用 loadTable() 方法 InventoryContro
我一直在查看以前提出的问题,但似乎找不到适合我的情况的解决方案... 我希望能够循环遍历所有 child 和 child 的 child 等等...... 设计中的标记看起来与此类似
这个问题在这里已经有了答案: How can I use jQuery methods on elements accessed by brackets notation? (2 个答案) 关闭 5
我有一个场景,我知道我正在寻找的 div 恰好是两层深。 使用效率是否更高: $('#mydiv').find('.myselector') 或 $('#mydiv').children().chil
我今天有一个很奇怪的问题:我有一个水平显示一些缩略图的 RecyclerView,我使用 smoothScrollToPosition 导航到我需要的项目,但我注意到一个问题:它不会滚动到最后一项。进
只有 JS,没有 Jquery。 如何获取容器的所有子节点,然后为每个子节点获取子节点? 我不想将 ID 添加到作为网格行子级的每个包装器,我尝试使用“this”或此索引进行定位。该脚本应该是动态的,
任务:在“注释”类的任何段落内的有序列表中强调强调的文本。这是我目前所拥有的... .note>p>ol>em{text-decoration:underline;} 我正在努力让它继续下去。我的代码
我有两个类如下: --- CSS: .shw-intro { width: 250px; height: 150px; background: rgb(95, 190, 0);
当前的 Firebase 数据库结构: 我要实现的目标: 在我所有位置的任何“促销”子项中搜索等于某物的优惠券。 如果找到,将其“limit”参数减少 -1 来更新它 我当前的代码: mDat
我有一个 html 表,想要获取所有行。但是,在 DebugElement 或 NativeElement 上调用 .children 会返回不同的顺序。 我的 table : 1
我在使用 Element.children 时注意到一个奇怪的问题并且似乎没有找到好的解决方法。 示例 1(预期行为) 拿这个 HTML: 还有这个 JS const formElem
目标是选择任何后代 - 无论直系后代指示如何 - 但不选择他们的 child 。换句话说,如果我从文档中搜索,我希望找到目标选择器未包含的所有子元素: test t
当我尝试执行 ParentNode.children 时,显示无法读取未定义的属性“children”。尝试让父节点的所有子节点的背景颜色为粉红色。 现在,我有一个以半小时为增量的表格,根据上午 8
我不确定这是否可行,但这是我想在 Reactjs 中实现的目标: 所以我想做的是,我想使用 React.cloneElement API 将 Comp1 组件的 pro
更新:我在另一台安装更干净的机器上试过这个。我无法在那台机器上重现这个。如果我发现是什么有问题的 (VSStudio) 组件导致了这种情况,我会告诉你的。 我从后面的代码创建了一些 UIElement
我是一名优秀的程序员,十分优秀!