为什么嵌套权重对性能不利?其他选择?

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

编写了几个布局文件,其中我使用了layout_weight属性在不同视图之间创建比率。

在某个时候,我开始收到关于嵌套权重的林特警告。

因此,我想知道为什么嵌套权重会对性能造成不良影响,如果有更有效的方法在视图维度之间创建一个常数比率,可以用于不同屏幕大小,并且不需要通过几个布局文件指定大量的维度dpi值。

小川小川提问于
遮天之李数学 本回答于
已采纳

嵌套权重不利于性能,因为:

布局权重要求对小部件进行两次测量。当一个非零权重的线性Layout嵌套在另一个具有非零权重的LinearLayout中时,测量的数量将呈指数增长。

并根据其他视图的位置调整视图,而不使用特定的dpi值。

MOISTG数学本科在修,顺带旁听计算机智能科学。喜欢计科,美食,旅游。一个走错路的文科生。回答于

好消息android%支持库解决了我们的性能问题和嵌套的混乱加权。LinearLayout

compile 'com.android.support:percent:23.0.0'

考虑这个简单的布局来演示相同的内容。

<android.support.percent.PercentRelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/fifty_huntv"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="#ff7acfff"
        android:text="20% - 50%"
        android:textColor="@android:color/white"
        app:layout_heightPercent="20%"
        app:layout_widthPercent="50%" />
    <TextView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_toRightOf="@id/fifty_huntv"
        android:background="#ffff5566"
        android:text="80%-50%"
        app:layout_heightPercent="80%"
        app:layout_widthPercent="50%"
        />

</android.support.percent.PercentRelativeLayout>

扫码关注云+社区