布局中的视图太多

时间:2014-10-06 16:17:03

标签: android xml

我正在Android中开发一个应用程序,我有以下XML布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/august"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:paddingTop="@string/size10" />

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:text="@string/away" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sun" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twentyfourth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/ten" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic" 
                android:text="@string/spitfireTournament" />

    </LinearLayout>
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/september"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:paddingTop="@string/size10"/> 

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/home" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/thirteenth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/three" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/haywardsHeath"
                android:textSize="15sp" />

    </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/away" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twentieth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/three" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/thanet"
                android:textSize="15sp" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/home" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twentyseventh"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/three" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/medway"
                android:textSize="15sp" />
        </LinearLayout>
        <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/october"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:paddingTop="@string/size10" />
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/away" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/fourth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/three" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/medway"
                android:textSize="15sp" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/away" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/eleventh"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/three" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/sevenoaks"
                android:textSize="15sp" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/home" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/eighteenth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/three" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/oldColf"
                android:textSize="15sp" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/away" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twentyfifth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/three" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/beckenham"
                android:textSize="15sp" />
        </LinearLayout>
        <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/november"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:paddingTop="@string/size10" />
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/home" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/first"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twoFifteen" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/tunbridgeWells"
                android:textSize="15sp" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/away" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/fifteenth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twoFifteen" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/aylesford"
                android:textSize="15sp" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/home" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twentysecond"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twoFifteen" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/ashford"
                android:textSize="15sp" />
        </LinearLayout>
        <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/december"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:paddingTop="@string/size10" />
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/home" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sixth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twoFifteen" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/crowborough"
                android:textSize="15sp" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/away" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/thirteenth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twoFifteen" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/maidstone"
                android:textSize="15sp" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/home" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twentieth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twoFifteen" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/thanet"
                android:textSize="15sp" />
        </LinearLayout>
        <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/january"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:paddingTop="@string/size10" />
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/away" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/tenth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twoFifteen" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/medway"
                android:textSize="15sp" />
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textAllCaps="true"
                android:textSize="15sp"
                android:text="@string/home" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sat" 
                android:paddingLeft="5dip"
                android:paddingRight="0dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/seventeenth"
                android:paddingLeft="0dip"
                android:paddingRight="2dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/twoFifteen" 
                android:paddingLeft="0dip"
                android:paddingRight="5dip"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="italic"
                android:text="@string/sevenoaks"
                android:textSize="15sp" />
        </LinearLayout>
</LinearLayout>

</ScrollView>

我的应用似乎崩溃了,我认为这可能取决于我在布局中的观看次数。我可以做些什么来减少视图的数量,但在应用程序中保持相同的布局?

1 个答案:

答案 0 :(得分:1)

我在您的Code中看到,您在所有XML文件中重复了部分设计,建议您创建一个包含文件,而不是重复XML,你说这可以帮你minimise the number of views 你只需要创建一个基本的XML文件,然后将它包含在你需要的地方,这里有一个很好的例子:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"     
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
 >
  <!-- Header -->
  <include
    android:id="@+id/container_header_lyt"  
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_above=...
    android:layout_toLeftOf=...
    layout="@layout/header_logo_lyt" //Name of the xml layout file you want to include
    />     

...

</RelativeLayout>

之后,如果您的Code

中的其他地方出错,请检查您的代码