android - 布局中的 View 过多

标签 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>

我的应用似乎崩溃了,我认为这可能是因为我在布局中拥有的 View 数量。我可以做些什么来最大程度地减少 View 数量但在应用程序中保持相同的布局吗?

最佳答案

正如我在您的代码中看到的,您在所有XML 文件中重复了部分设计,我建议您创建一个包含文件而不是重复您的XML,正如您所说,这有助于您最小化 View 数量 你只需要创建一个基本的 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>

之后,检查您的代码,如果您的代码中的其他地方有误

关于android - 布局中的 View 过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26220439/

相关文章:

xml - 如何处理 Oracle XML DB native Web 服务中的 NULL 存储过程返回参数?

java - 是什么导致 SAXException2 : Instance of “com.foo.Bar” is substituting “java.lang.Object” , 但 “com.foo.Bar” 绑定(bind)到匿名类型

android spinner performClick onItemSelected

Android 标签与横向

python - xpath 中没有条件

java - 来自 XML 的 MapView 的 Android InflateException

xml - Eclipse 中缺少 xml 配置选项卡?

android - OnTouch适用于1个按钮,但不适用于3个按钮

java - 从文件读取给出 java.io.StreamCorruptedException : invalid stream header: 73720027

android - 避免发送 SMS 的 "Complete action using"对话框