Scrollview内部的TabHost:单击Tab时始终向下滚动

时间:2010-01-06 16:11:51

标签: android android-tabhost android-scrollview

我有一个以Scrollview作为顶级元素的Activity。里面有一些其他的视图,在某些时候有一个TabHost。通过查看the screenshot,您可能会获得更好的印象。 TabHost有三个选项卡,每个选项卡都有一个由Intent启动的Activity。

除了一件事,一切都很好。每当我点击标签时,Scrollview会自动向下滚动,如您所见over here。之后TabHost不在屏幕之外。我只是不希望它向下滚动,但看不出问题是什么。我在1.5和1.6设备和2.0仿真器上测试了相同的结果。

我的TabHost的xml看起来像这样:

    <TabHost
        android:id="@+id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />
            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
            </FrameLayout>
        </LinearLayout>
    </TabHost>

这是添加标签的代码:

private void addTab(int descriptionRes, Class<?> destination, int flags) {
    String description = getString(descriptionRes);
    TabSpec spec = mTabHost.newTabSpec(description);
    spec.setIndicator(description);
    Intent i = new Intent(this, destination);
    i.setData(Uri.parse(member.getId())).setFlags(flags);
    spec.setContent(i);
    mTabHost.addTab(spec);
}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试将Activity内的TabHost Activity设置为可滚动,而不是顶级{{1}}本身。