gpt4 book ai didi

android - 如何解决 "Layout has more than 80 views, bad for performance"?

转载 作者:太空狗 更新时间:2023-10-29 12:44:43 25 4
gpt4 key购买 nike

我正在做一个有点复杂的布局,只是我无法修复 LINT 指示的错误(...黑莓浏览量超过 80 次,对性能不利)这是布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Activity_schedapunti">


<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:gravity="center_horizontal"
android:text="@string/esame_visivo"
android:textColor="@android:color/white"
android:textStyle="bold"
android:background="@android:color/black"/>

<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".3"
android:gravity="center_horizontal"
android:text="@string/punteggio_parziale"
android:textColor="@android:color/white"
android:textStyle="bold"
android:background="@android:color/black"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:orientation="horizontal">
<TextView
android:id="@+id/textview_aspetto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/aspetto"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coeff_x1"
android:textStyle="bold"
android:textColor="@color/light_yellow"/>
<EditText
android:id="@+id/edittext_aspetto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:singleLine="true" />
</LinearLayout>

<TextView
android:id="@+id/textview_puteggio_parziale_aspetto"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight=".3"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:orientation="horizontal">
<TextView
android:id="@+id/textview_punti_colore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/colore"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coeff_x2"
android:textStyle="bold"
android:textColor="@color/light_yellow"/>
<EditText
android:id="@+id/edittext_punti_colore"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:singleLine="true" />
</LinearLayout>

<TextView
android:id="@+id/textview_puteggio_parziale_colore"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight=".3"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:gravity="center_horizontal"
android:text="@string/esame_olfattivo"
android:textColor="@android:color/white"
android:textStyle="bold"
android:background="@android:color/black"/>

<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".3"
android:gravity="center_horizontal"
android:text="@string/punteggio_parziale"
android:textColor="@android:color/white"
android:textStyle="bold"
android:background="@android:color/black"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:orientation="horizontal">
<TextView
android:id="@+id/textview_punti_intensita"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/intensita"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coeff_x1"
android:textStyle="bold"
android:textColor="@color/light_yellow"/>
<EditText
android:id="@+id/edittext_punti_intensita"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:singleLine="true" />
</LinearLayout>
<TextView
android:id="@+id/textview_puteggio_parziale_intensita"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight=".3"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:orientation="horizontal">
<TextView
android:id="@+id/textview_punti_complessita"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/complessita"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coeff_x2"
android:textStyle="bold"
android:textColor="@color/light_yellow"/>
<EditText
android:id="@+id/edittext_punti_complessita"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:singleLine="true" />
</LinearLayout>
<TextView
android:id="@+id/textview_puteggio_parziale_complessita"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight=".3"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:orientation="horizontal">
<TextView
android:id="@+id/textview_punti_qualita"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/qualita"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coeff_x3"
android:textStyle="bold"
android:textColor="@color/light_yellow"/>
<EditText
android:id="@+id/edittext_punti_qualita"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:singleLine="true" />
</LinearLayout>
<TextView
android:id="@+id/textview_puteggio_parziale_qualita"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight=".3"/>
</TableRow>




<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:gravity="center_horizontal"
android:text="@string/esame_gusto_olfattivo"
android:textColor="@android:color/white"
android:textStyle="bold"
android:background="@android:color/black"/>

<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".3"
android:gravity="center_horizontal"
android:text="@string/punteggio_parziale"
android:textColor="@android:color/white"
android:textStyle="bold"
android:background="@android:color/black"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:orientation="horizontal">
<TextView
android:id="@+id/textview_punti_struttura"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/struttura"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coeff_x1"
android:textStyle="bold"
android:textColor="@color/light_yellow"/>
<EditText
android:id="@+id/edittext_punti_struttura"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:singleLine="true" />
</LinearLayout>
<TextView
android:id="@+id/textview_puteggio_parziale_struttura"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight=".3"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:orientation="horizontal">
<TextView
android:id="@+id/textview_punti_equilibrio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/equilibrio"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coeff_x1"
android:textStyle="bold"
android:textColor="@color/light_yellow"/>
<EditText
android:id="@+id/edittext_punti_equilibrio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:singleLine="true" />
</LinearLayout>
<TextView
android:id="@+id/textview_puteggio_parziale_equilibrio"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight=".3"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:orientation="horizontal">
<TextView
android:id="@+id/textview_punti_intensita_gusto_olfattivo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/intensita"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coeff_x1"
android:textStyle="bold"
android:textColor="@color/light_yellow"/>
<EditText
android:id="@+id/edittext_punti_intensita_gusto_olfattivo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:singleLine="true" />
</LinearLayout>
<TextView
android:id="@+id/textview_puteggio_parziale_intensita_gusto_olfattivo"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight=".3"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:orientation="horizontal">
<TextView
android:id="@+id/textview_punti_persistenza"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/persistenza"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coeff_x2"
android:textStyle="bold"
android:textColor="@color/light_yellow"/>
<EditText
android:id="@+id/edittext_punti_persistenza"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:singleLine="true" />
</LinearLayout>
<TextView
android:id="@+id/textview_puteggio_parziale_persistenza"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight=".3"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:orientation="horizontal">
<TextView
android:id="@+id/textview_punti_qualita_gusto_olfattivo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/qualita"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coeff_x3"
android:textStyle="bold"
android:textColor="@color/light_yellow"/>
<EditText
android:id="@+id/edittext_punti_qualita_gusto_olfattivo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:singleLine="true" />
</LinearLayout>
<TextView
android:id="@+id/textview_puteggio_parziale_qualita_gusto_olfattivo"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight=".3"/>
</TableRow>


<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:orientation="horizontal">
<TextView
android:id="@+id/textview_punti_armonia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/armonia"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coeff_x3"
android:textStyle="bold"
android:textColor="@color/light_yellow"/>
<EditText
android:id="@+id/edittext_punti_armonia"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:singleLine="true" />
</LinearLayout>
<TextView
android:id="@+id/textview_puteggio_parziale_armonia"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight=".3"/>
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:gravity="center_horizontal"
android:text="@string/punteggio_totale"
android:textColor="@android:color/white"
android:textStyle="bold"
android:background="@android:color/black"/>

<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".3"
android:gravity="center_horizontal"
android:textColor="@color/light_yellow"
android:textStyle="bold"
android:background="@android:color/black"/>
</TableRow>
</TableLayout>
</ScrollView>

我读到要使用一个ListView,但是我应该怎么做呢?并非所有行都相等,或者在任何情况下中间都有一些元素不等于所有其他行!

图片:

enter image description here

最佳答案

这绝对是 ListView 的理想候选者。正如我在评论中所述,您可以在您的 Adapter 中使用自定义 layout。我不知道您是如何获取数据的,所以我不能确切地说出如何检查,但是在每一轮 getView() 中,您都可以检查数据并决定使用哪个 View 显示/隐藏。

只需使用 TextView 等创建 layout...每一行可能需要,看起来可能在垂直 LinearLayout 在内部使用水平 LinearLayout 或者只是一个 RelativeLayout 然后将 visibility 更改为 visible/gone取决于你需要什么。

如果您不熟悉此操作,那么您可以查看 this tutorial做这件事。

Adapter Docs

ListView Docs

正如评论中所指出的,如果您有非常多的需求,您可以在 AdaptergetView() 方法中膨胀不同的 layout不同的 layout 这可能会使切换 visibility 成为一种糟糕的方法。这仅取决于您的数据和布局

关于android - 如何解决 "Layout has more than 80 views, bad for performance"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20223628/

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