代码之家  ›  专栏  ›  技术社区  ›  nbarraille

相对主义者比直系主义者更贵吗?

  •  112
  • nbarraille  · 技术社区  · 14 年前

    每当我需要一个VIEW容器时,我总是使用RelialayOUT,因为它是灵活的,即使我只是想显示一些非常简单的东西。

    谢谢!

    5 回复  |  直到 6 年前
        1
  •  148
  •   Pierre-Antoine LaFayette    9 年前

    在Google I/O 2013(为Android编写自定义视图)的一次演讲中,Romain Guy澄清了导致每个人开始对所有事情使用relativelayout的误解。相对主义者总是要做两次测量。总的来说,只要视图层次结构简单,它就可以忽略不计。但是,如果层次结构很复杂,那么执行额外的度量传递可能会相当昂贵。另外,如果嵌套相对延迟,则得到指数测量算法。

    https://www.youtube.com/watch?v=NYtB6mlu7vA&t=1m41s

    https://www.youtube.com/watch?v=NYtB6mlu7vA&t=38m04s

        2
  •  52
  •   ForceMagic chooselife    11 年前

    除非您正在布局许多视图(例如在ListView中),否则在LinearLayout或RelativeLayout之间进行选择的性能可以忽略不计。选择工作中最方便使用的一个,并且只在需要时才考虑性能。

    以下是官方文件 Creating Efficient Layouts

    坚持基本特征是 可惜不是最有效的 常见的例子是滥用 线性布局,导致 等级制度。不管是哪种情况, 添加到的每个布局管理器 你的申请要付出代价: 初始化、布局和绘图 尤其是当你筑巢的时候 权重参数,需要 两次测量的孩子。

        3
  •  2
  •   Chris Hayes    10 年前

    here :

    使用基本布局结构会导致最有效的布局,这是一种常见的误解。但是,添加到应用程序中的每个小部件和布局都需要初始化、布局和绘图。例如,使用LinearLayout的嵌套实例可能导致视图层次结构过深。此外,嵌套使用layout_weight参数的几个LinearLayout实例可能特别昂贵,因为每个子项都需要测量两次。当布局重复膨胀时(例如在ListView或GridView中使用时),这一点尤其重要。

        4
  •  1
  •   akelec    7 年前

    在Android的N个版本中 ConstraintLayout 类提供类似于 RelativeLayout

        5
  •  -22
  •   TeeTracker    11 年前

    你可以试试

    <LinearLayout>
           <ViewPager/><!--Loading images from net, it is very good as a testing case.-->
           <ViewPagerIndicator/>
           <TextView/> <!--Show some info about page-->
    </LinearLayout>
    
    <RelativeLayout>           
           <ViewPager/><!--Loading images from net, it is very good as a testing case.-->
           <ViewPagerIndicator below="id of ViewPager"/>
           <TextView below="id of ViewPagerIndicator"/> <!--Show some info about page-->
    </RelativeLayout>
    

    你会发现有很多不同,如果你的网页从互联网上加载一些图片。在这种情况下,线性布局比相对布局好100%。