TabHost中的Listview(ActivityGroup)

时间:2014-05-30 20:28:10

标签: android listview android-tabhost

我创建了listview activity.Code如下:

public class List extends Activity {

  ListView listView ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view_android_example);
        listView = (ListView) findViewById(R.id.list);
        String[] values = new String[] { "Android",
                "iPhone",
                "WindowsMobile",
                "Blackberry",
                "WebOS",
                "Ubuntu",
                "Windows7",
                "Max OS X"
        };

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, values);

        listView.setAdapter(adapter);
    }

}

activity_list_view_android_example.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" >

    <ListView
            android:id="@+id/list"
            android:layout_height="wrap_content"
            android:layout_width="match_parent">
    </ListView>

</LinearLayout>

我尝试将此列表活动添加到tabhost活动中。 代码如下:

public class Main extends ActivityGroup{

TabHost tabHost;

 public void onCreate(Bundle savedInstanceState) {

        try
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            tabHost=(TabHost)findViewById(R.id.tabhost1);
            tabHost.setup(getLocalActivityManager());
            this.tabHost.setOnTabChangedListener(this);

            TabHost.TabSpec photospec = tabHost.newTabSpec("Tab1");
            photospec.setIndicator("Tab1");
            Intent photosIntent = new Intent(this,Lista.class );
            photospec.setContent(photosIntent);

            TabHost.TabSpec photospec2 = tabHost.newTabSpec("Tab2");
            photospec2.setIndicator("Tab2");
            Intent photosIntent2 = new Intent(this,Lista.class );
            photospec2.setContent(photosIntent2);

            TabHost.TabSpec photospec3 = tabHost.newTabSpec("Tab3");
            photospec3.setIndicator("Tab3");
            Intent photosIntent3 = new Intent(this,Lista.class );
            photospec3.setContent(photosIntent3);


            tabHost.addTab(photospec);
            tabHost.addTab(photospec2);
            tabHost.addTab(photospec3);

        }
        catch (Exception ex)
        {
            String a= ex.getMessage();
            String b="sdds";
        }

    }
}

main.xml中

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

<ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        <TabHost
                android:id="@+id/tabhost1"
                android:background="@null"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
            <LinearLayout
                    android:orientation="vertical"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent">
                <TabWidget
                        android:id="@android:id/tabs"
                        android:layout_width="fill_parent"
                        android:layout_height="40dp"
                        />
                <FrameLayout
                        android:id="@android:id/tabcontent"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        >
                </FrameLayout>
            </LinearLayout>
        </TabHost>
</ScrollView>

因此,当我运行我的应用程序时,有些东西正在削减我的列表视图,因此我的设备显示了这一点。 https://www.dropbox.com/s/iqbm37lfedklafg/zakladki_lista_zle.png.jpg

结果我的应用程序我想收到这个: https://www.dropbox.com/s/qdjqgnwqjtjvf3d/zakladki_lista_dobre.png.jpg

如何解决我的问题?如果有人帮我解决问题,我将不胜感激。对不起,如果这个问题很简单,但我很唠叨,我无法解决这个问题。

1 个答案:

答案 0 :(得分:-1)

android:layout_height="match_parent"设置wrap_content(而不是ListView)。您希望它填充其父级的整个垂直空间。 ListViews无法使用wrap_content作为高度。

您还应该删除根ScrollView。在Android中无法使用嵌套滚动(并且ListView具有隐式滚动)。