首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

相对布局(RelativeLayout)嵌套导致Layout卡顿瓶颈分析与方案

图片梳理布局层次,层级较深同时容器嵌套较多,那么是否层级深就会引发上述问题,答案是否定的。通过追溯相对布局系统源码发现问题所在。...图片从相对布局的源码看,一次onMeasure实现上,会遍历所有Child两次,且做两次child的measure,换句话说,使用相对布局(不嵌套的情况下),在一次doFrame遍历中,他的child会进行...虽然一直都知道不要嵌套布局这样的规范,但并不深刻,这里知其然,知其所以然图片按照上述结论,在左侧这样的布局当中,叶子节点ViewGroup,在一次doFrame遍历中,onMeasure会被执行2^5=...一般来讲,直接再一个xml中嵌套相对布局的写法不常见,但由于自定义View的存在,咱们大部分时候的写法如下:图片类似于这样的代码较多,优点很明显,方便解耦集中维护自己业务布局,缺点是容易被相对布局嵌套导致...结论:相对布局和约束布局禁止嵌套使用,需要嵌套布局使用帧布局或线性布局,仅作为容器(壳)的布局尽量使用帧布局在复杂层级深的布局中,顶层根布局容器尽量选择帧布局,叶子节点的布局容器可以不受限制,但尽量不选择约束布局

77741
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于p标签不能嵌套div标签引发的标签嵌套问题总结

    : 1,内联元素,可以嵌套内联元素,不可以嵌套块状元素 2,块元素,可以嵌套块元素,或者是内联元素 3,部分块元素,不能嵌套块元素,只能嵌套内联元素,如:p、h1-h6 4, 块元素中嵌套的元素...,块元素和块元素一级,内联元素和内联元素一级 内联标签可以嵌套内联元素,不可以嵌套块状元素       正确  (内联嵌套内联)     ...  正确  (内联嵌套内联)      错误  (内联嵌套块级) 块元素可以嵌套块元素(不是所有块级都可以嵌套块级...有几个特殊的块级元素只能包含内嵌元素,不能再包含块级元素,这几个特殊的标签是:h1~h6、p、dt。...所以说p里面不能嵌套div,就是我犯的错误。

    2.9K30

    useTransition真的无所不能吗?🤔

    ❝人生不售来回票,一旦动身,绝不能复返 ❞ 大家好,我是「柒八九」。 前言 之前通过React 并发原理讲解了React如何实现原理。...因此,永远不要在所有状态更新中使用它们 ❞ 题外话 话说,你们除夕上班吗? 好了,天不早了,干点正事哇。 1. 前置知识点 ❝「前置知识点」,只是做一个概念的介绍,不会做深度解释。...并发渲染和useTransition ❝关于并发的内容,这篇文章中不打算过多的涉及,有兴趣的可以参考之前的文章React 并发原理 ❞ 上文讲到通过常规的React更新方式,不能很好的处理上面页面卡顿的现象...具体的解决方法吗,我们优先考虑「下放State」和「内容提升」,在最后万不得已的情况才会考虑React.memo。

    42710

    字面跳动前端面试题:React Hook为什么不能放在if循环嵌套函数里面?

    将 Hook 放在 if/循环/嵌套函数中会破坏它们的封装性和可预测性,使得代码更难维护和理解。同时,这样做也增加了代码的复杂度,可能会导致性能下降和潜在的错误。...想象一下,如果你把 Hook 放在if/循环/嵌套函数里,那么每次条件改变或循环迭代,Hook 都可能被重新创建,这就有点乱了,对吧?...在if/循环/嵌套函数 中调用 Hook,可能会导致它们的调用顺序和次数不一致,从而引发一些奇怪的问题,比如状态不稳定、内存泄漏等。...因此,在编写 React 函数组件时,一定要遵循 Hook 规则,只在顶层使用 Hooks,并且不要在循环、条件或嵌套函数中调用。...* 只能在React函数组件或者自定义 Hook 调用 Hook ,不能在其他JavaScript函数中调用。

    1K10
    领券