如何使布局加载时间更高效?

时间:2010-12-30 17:34:50

标签: android android-layout

我目前有一个带有4个标签的布局,第一个标签有应用程序的主屏幕,为其他活动的图标加载4个图像视图。第二个选项卡加载webview(非常基本的),第三个选项卡也是如此。最后一个选项卡加载地图。该应用程序加载速度非常慢,大约需要11秒,而且当我在Eclipse中进行调试时,几乎整个时间花费在setContentView上,但我无法弄清楚我的布局中需要花费这么长时间才能加载。

这是我的布局代码:

<?xml version="1.0" encoding="utf-8"?>

<TabHost 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabhost" android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <LinearLayout 
        android:orientation="vertical"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        >
        <FrameLayout 
            android:id="@android:id/tabcontent"
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:layout_weight="1"
            >
            <RelativeLayout 
                android:id="@+id/tab1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/background"
                >
                <ImageView 
                    android:id="@+id/HomeButtonEvents" 
                    android:src="@drawable/eventsicon"
                    android:layout_width="wrap_content" 
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentLeft="true" 
                    android:paddingBottom="95dp"
                    android:clickable="true" 
                    />
                <ImageView 
                    android:id="@+id/CancelledClasses" 
                    android:src="@drawable/cancelledicon"
                    android:layout_width="wrap_content" 
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentRight="true" 
                    />
                <ImageView 
                    android:id="@+id/CourseSchedule" 
                    android:src="@drawable/coursesicon"
                    android:layout_width="141dp" 
                    android:layout_height="139dp"
                    android:layout_alignParentTop="true"
                    android:layout_alignParentLeft="true" 
                    />
                <ImageView 
                    android:id="@+id/POTD" 
                    android:src="@drawable/potdicon"
                    android:layout_width="294dp" 
                    android:layout_height="247dp"
                    android:paddingTop="45dp" 
                    android:paddingRight="1dp"
                    android:layout_alignParentTop="true"
                    android:layout_alignParentRight="true" 
                    android:layout_toRightOf="@id/CourseSchedule" 
                    />
<!--            <ImageView -->
<!--                android:id="@+id/potdview"-->
<!--                android:layout_width="wrap_content"-->
<!--                android:layout_height="wrap_content"-->
<!--                android:paddingTop="0dp" -->
<!--                android:paddingRight="1dp"-->
<!--                android:paddingBottom="150dp" -->
<!--                android:layout_alignParentTop="true"-->
<!--                android:layout_alignParentRight="true" -->
<!--                android:layout_toRightOf="@id/CourseSchedule" -->
<!--                /> -->
            </RelativeLayout>

            <WebView 
                android:id="@+id/tab2" 
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" 
                />

        </FrameLayout>

        <TabWidget 
            xmlns:android="http://schemas.android.com/apk/res/android" 
            android:id="@android:id/tabs"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:layout_weight="0" 
            />

    </LinearLayout>

</TabHost>

有任何想法/建议吗?

2 个答案:

答案 0 :(得分:0)

我的建议是将4个标签拆分为单独的活动,除非你绝对必须将它们作为标签。如果您希望将它们作为选项卡,那么可能会在选项卡聚焦时动态加载选项卡内容。

答案 1 :(得分:0)

在我看来,你有太多的Layout对象。我相信你应该只用TabHost和RelativeLayout来做所有事情。