XML では、ビューは高価であり、理想的にはできる限り少なくするよう努めるべきであることはわかっています。しかし、私の場合、80 近くの多くのビューを持たなければならないような方法でレイアウトを設計しています。Eclipse から警告が表示されたので、いくつかのビューを削除しましたが、私の実装では、最小限の 48 ビューが必要であり、余分なものは含まれていません。したがって、私の質問は、本当にもっと簡単な方法を見つけるべきか、それとも問題ないかということです。実際に最大にする必要がある実際の数は何ですか?
XML ファイル
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/top_bar_date_display"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="July 1, 2012"
android:background="#696969"/>
<ScrollView
android:layout_height="wrap_content"
android:layout_width="match_parent"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/day_view_floaty_holder"
android:background="#000000">
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="1" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="12\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal"
android:layout_marginBottom="1dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="1\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="2\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="3\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="4\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="5\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="6\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="7\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="8\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="9\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="10\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="11\nAM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="12\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="1\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="2\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="3\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="4\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="5\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="6\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="7\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="8\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="9\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="10\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="#ffffff"
android:layout_marginBottom="1dp" >
<TextView
android:layout_width="20dp"
android:layout_height="60dp"
android:text="11\nPM"
android:background="#bebebe"
android:textSize="10dp"
android:gravity="center_horizontal" />
</LinearLayout>
</GridLayout>
<!-- THIS GRIDLAYOUT IS WHERE THE EVENTS WILL BE PLACED-->
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="1" >
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_0"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_1"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_2"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_3"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_4"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_5"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_6"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_7"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_8"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_9"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_10"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_11"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_12"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_13"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_14"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_15"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_16"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_17"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_18"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_19"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_20"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_21"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_22"
android:orientation="horizontal" ></LinearLayout>
<LinearLayout
android:layout_height="61dp"
android:layout_width="match_parent"
android:layout_marginLeft="20dp"
android:id="@+id/day_view_23"
android:orientation="horizontal" ></LinearLayout>
</GridLayout>
</RelativeLayout>
</ScrollView>
おそらく、コードが変換されたものの背後にあるロジックを説明する必要があります。基本的に、24 行の GridLayout と、その上に浮いている別の 24 行の別の GridLayout が必要でした。これは、最初の GridLayout の上に浮かせる必要があるものを分離するために行いました。カレンダーアプリの日表示用と思われます。