这是我的布局,我收到警告说"Nested weights are bad for performance"
ImageView
。我怎样才能避免这种情况以及我做错了什么?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@android:color/white">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1.50">
<ImageView
android:layout_width="0dp"
android:layout_height="60dp"
android:background="@drawable/left_top"
android:layout_weight=".75"
android:contentDescription="@string/title"
/>
<ImageView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1.25"
android:contentDescription="@string/title"
/>
<ImageView
android:layout_width="0dp"
android:layout_height="60dp"
android:background="@drawable/right_top"
android:layout_weight="0.50"
android:contentDescription="@string/title" />
</LinearLayout>
<ImageView
android:id="@+id/imagefirstname"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="3"
android:contentDescription="@string/app_name"
android:background="@drawable/logo"
android:scaleType="center"
android:layout_gravity="center_horizontal"
/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:text="@string/welcome_title"
android:textSize="25sp"
android:layout_gravity="center"
android:gravity="center"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight=".75">
<ImageView
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="@drawable/left_bottom"
android:layout_weight=".75"
android:contentDescription="@string/title"
/>
<ImageView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1.25"
android:contentDescription="@string/title"
/>
<ImageView
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="@drawable/right_bottom"
android:layout_weight="0.50"
android:contentDescription="@string/title" />
</LinearLayout>
</LinearLayout>
我可以知道实现目标的正确方法是什么?也许这个问题太基础了,但我找不到合适的解决方案。
请帮帮我。
答案 0 :(得分:1)
根据Android文档:
使用LinearLayout的嵌套实例可能会导致过深 查看层次结构嵌套使用的LinearLayout的几个实例 layout_weight参数可以作为每个孩子特别昂贵 需要测量两次。这一点尤为重要 布局重复膨胀,例如在ListView或中使用时 GridView的。
另外
The performance might improve by flattening the layout—make the layout shallow and wide, rather than narrow and deep.
在另一个内部有LinearLayout
个布局权重。相反,您可以使用RelativeLayout
代替LinearLayout
。
阅读docs以获取更多信息。