gpt4 book ai didi

android - 嵌套约束布局?这是一种不好的做法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:02:32 29 4
gpt4 key购买 nike

我在理解 ConstraintLayout 的使用上有一个灰色地带。

我已经使用 Constraint Layout 实现了我的布局。但碰巧我想让一组 View 项充当一个 View ,例如制作两个 ImageView 和一个 TextView 来像单个一样响应点击 View 所以我需要把它们放在另一个布局中并使用这个布局来响应点击。我想知道是否可以将它们放在另一个 Constraint Layout 中(其他布局无法提供我想要的 View 排列)这将导致嵌套 Constraint Layout 在单一布局中。

那么一般来说,嵌套 Constraint Layout 是正确的,还是就其目的而言是错误的做法(即平面布局)?

编辑

在答案中,建议为每个 View 设置监听器,而不是为其父布局设置监听器,我已经测试过这种方法,这不是我需要的。一个例子是当我有一个带有文本和可绘制对象的自定义按钮时(我无法使用按钮本身的 drawableLeftdrawableRight 属性来实现,因为它不会看起来像我们在设计中的样子)。所以正如你所看到的,我无法让 ImageViewTextView 分别监听点击,因为用户会看到两种不同的点击效果,而且它看起来不像是单个按钮点击.

最佳答案

基于 this来自 android 开发者博客的文章。我想提几件事。您可以阅读完整的文章并自行决定,但我想提几个要点。

<强>1。 android如何绘制View

When a user brings an Android view into focus, the Android frameworkdirects the view to draw itself. This drawing process comprises 3phases:

  1. 衡量:衡量 View 和 View 组。
  2. 布局:根据度量确定 subview 的位置。
  3. 绘制:为每个对象创建 Canvas 并绘制 View 。

Each phase within the drawing process requires a top-down traversal ofthe view tree. Therefore, the more views you embed within each other(or nest) into the view hierarchy, the more time and computation powerit takes for the device to draw the views. By keeping a flat hierarchyin your Android app layouts, you can create a fast and responsive userinterface for your app.

因为约束布局将允许您创建一个平面层次结构,该层次结构将使用更少的计算能力并且速度更快。根据对传统布局执行的测试结果,您可以看到以下结果。

enter image description here

根据我对布局工作方式和约束布局行为的理解,您的嵌套约束布局将比所有传统布局更快,但由于嵌套,它将比完整的平面层次结构慢。此外,为了实现允许用户点击的目标,为什么不将点击监听器设置为适合您的 View 。

关于android - 嵌套约束布局?这是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53813792/

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