我知道在 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 之上的内容。它假设是用于日历应用程序的日视图。