gpt4 book ai didi

android - 嵌套权重与带权重的嵌套布局。哪个更好?

转载 作者:行者123 更新时间:2023-11-30 03:22:49 24 4
gpt4 key购买 nike

当我们做嵌套权重时,Android Lint 会警告我们说嵌套权重不利于性能,所以我想知道如果我添加一个包含嵌套权重布局的额外布局会发生什么。它会对性能产生任何影响吗?

那个家伙 here说Layout weights需要一个widget测量两次。当一个具有非零权重的 LinearLayout 嵌套在另一个具有非零权重的 LinearLayout 中时,测量的数量会呈指数增长。

所以我想知道是

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal" >

<FrameLayout
android:id="@+id/fl_topleft"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/shape" />

<FrameLayout
android:id="@+id/fl_topright"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/shape" />
</LinearLayout>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:gravity="center"
android:orientation="horizontal" >

<FrameLayout
android:id="@+id/fl_bottomleft"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/shape" />

<FrameLayout
android:id="@+id/fl_bottomright"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/shape" />
</LinearLayout>
</LinearLayout>

</LinearLayout>

优于

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:orientation="horizontal"
android:layout_weight="1" >



<FrameLayout
android:id="@+id/fl_topleft"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/shape" />

<FrameLayout
android:id="@+id/fl_topright"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/shape" />

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:orientation="horizontal"
android:layout_weight="1" >



<FrameLayout
android:id="@+id/fl_bottomleft"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/shape" />

<FrameLayout
android:id="@+id/fl_bottomright"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/shape" />

</LinearLayout>

</LinearLayout>

最佳答案

第二层布局不会阻止额外处理的发生/传播。

我的理解是 linearlayout 实际上总是执行两次传递,但这可能只是实践中发生的事情,因为如果您不使用权重,则可以使用 relativelayout 执行相同的布局。

只是详细说明。 onMeasure 传播从根向下移动发生两次。在这两种情况下,框架布局都测量了 4 次。

关于android - 嵌套权重与带权重的嵌套布局。哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18800959/

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