此布局中最后一个TextView中的layout_weight属性被lint突出显示为导致性能不佳。我怀疑lint警告的名称是错误的,因为没有嵌套权重。有几个拉伸视图,我怀疑这意味着依赖加权视图。
解决方案是什么,构建此布局,避免此lint警告,并提高性能?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:background="@drawable/background_gradient"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image4"
android:layout_margin="6dp"
android:contentDescription="@string/PLACEHOLDER_TEXT"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
>
<Button
style="@style/dashboard_button"
android:id="@+id/home_management"
android:text="@string/ICON_MANAGEMENT"
/>
<Button
style="@style/dashboard_button"
android:id="@+id/home_calculators"
android:text="@string/ICON_CALCULATORS"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
>
<Button
style="@style/dashboard_button"
android:id="@+id/home_guidelines"
android:text="@string/ICON_GUIDELINES"
/>
<Button
style="@style/dashboard_button"
android:id="@+id/home_faq"
android:text="@string/ICON_FAQ"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
>
<Button
style="@style/dashboard_button"
android:id="@+id/home_refs"
android:text="@string/ICON_REFERENCES"
/>
<Button
style="@style/dashboard_button"
android:text=""
android:visibility="invisible"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_margin="6dp"
>
<TextView
android:text="@string/HOMEPAGE_CONTENT"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textColor="#FFFFFF"
/>
<View
android:layout_width="8dp"
android:layout_height="1dp"
/>
<ImageView
android:id="@+id/home_logo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/image7"
android:contentDescription="@string/PLACEHOLDER_TEXT"
/>
</LinearLayout>
<Button
android:id="@+id/home_web_site"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/HOMEPAGE_FOOTER"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:textSize="12sp"
android:background="@drawable/button_red"
android:layout_margin="6dp"
android:textColor="#FFFFFF"
/>
</LinearLayout>
答案 0 :(得分:2)
但是,您不必担心这一点,特别是如果您真的需要权重,并且这是正确声明布局的唯一方法。
答案 1 :(得分:1)
TextView
区域中的ImageView
和@string/HOMEPAGE_CONTENT
嵌套在其父LinearLayout
中并分配了权重。我怀疑这些是你的问题,特别是因为父亲是wrap_content
,所以从理论上讲,不应该让子元素延伸到任何空间。
答案 2 :(得分:0)
关于这部分代码。
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal" <Button style="@style/dashboard_button" android:id="@+id/home_management" android:text="@string/ICON_MANAGEMENT" /> <Button style="@style/dashboard_button" android:id="@+id/home_calculators" android:text="@string/ICON_CALCULATORS" />
你的LinearLayout包含“layout_weight”属性,如果样式“dashboard_button”也包含属性“layout_weight”,那么你会得到几个带有“layout_weight”属性的嵌套视图,尽管lint现在没有警告我样式中的“layout_weight”。 我的解决方案是用RelativLayout替换一个(或两个)LinearLayouts,并以编程方式调整大小和位置。