Android:TabHost中的ListView

时间:2011-09-09 11:11:02

标签: listview android-layout android-tabhost

我将ListActivity分配为Tab contnet。一切正常,但我无法看到所有列表项结果。我只看到2个项目,只有第二个项目的一半才可见,我知道我的列表包含超过100个项目。 任何猜测?

+++++ EDIT ++++

Tab view Layout:
================

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:background="@drawable/bg" android:layout_height="fill_parent">

    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@android: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">
            <View android:layout_width="fill_parent" android:layout_height="0.5dip"
                android:background="#000" />
            <TabWidget android:id="@android:id/tabs"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:layout_marginLeft="0dip" android:layout_marginRight="0dip" />
            <View android:layout_width="fill_parent" android:layout_height="2dip"
                android:background="#696969" />
            <View android:layout_width="fill_parent" android:layout_height="2dip"
                android:background="#000" />
            <ScrollView android:id="@+id/ScrollView01"
                android:layout_width="fill_parent" android:layout_height="fill_parent">
                <FrameLayout android:id="@android:id/tabcontent"
                    android:layout_width="fill_parent" android:layout_height="wrap_content">

                </FrameLayout>
            </ScrollView>
        </LinearLayout>
    </TabHost>
</LinearLayout>


Tab Activity:
=============
onCreate():

        mTabHost = (android.widget.TabHost) findViewById(android.R.id.tabhost);
        mTabHost.setup(getLocalActivityManager());
        mTabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider);

        Intent list1Intent = new Intent(LIST1);     
        View tabview1 = createTabView(mTabHost.getContext(), "Tab1");
        mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator(tabview1)
                .setContent(new Intent(list1Intent)));

        View tabview2 = createTabView(mTabHost.getContext(), "Tab2");
        mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator(tabview2)
                .setContent(commentsIntent));                               
        mTabHost.setCurrentTab(0);      


LIST1 layout:
=============
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" android:layout_height="fill_parent"
    android:background="@drawable/bg" android:orientation="vertical"
    android:id="@+id/rootView">

    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:id="@+id/cs_list_empty"
        android:text="No Data"></TextView>

    <ListView android:id="@+id/android:list" android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:cacheColorHint="#00000000"
        android:divider="#E6E8E9" android:dividerHeight="2dip" 
        android:clickable="false" android:choiceMode="none" android:focusable="false" />

</LinearLayout>

谢谢, Venkat Papana

1 个答案:

答案 0 :(得分:1)

您不应该使用带有ListActivity的scrollview,因为它已经实现了滚动,而scrollview将中断为列表活动所做的优化。

将tabcontent framelayout设为

<FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" 
    android:layout_height="0dip" android:layout_weight="1.0"/>

这将使framelayout填满整个剩余空间。