我想让我的选项卡可以滚动,但使用FragmentTabHost时它不起作用



我正试图让我的可滚动选项卡(一个类似Google Play菜单的滚动选项卡)正常工作。我使用android.support.v4.app.FragmentTabHost作为选项卡主机,使用android.support.v4.app.Fragment作为片段。除了选项卡主机不可滚动(我使用HorizontalScrollView作为滚动功能)之外,一切都正常。如果我将tabhost更改为标准android.widget.TabHost,将activity更改为TabActivity,那么它就可以工作了。因此,我认为FragmentTabHost存在某种问题,导致ScrollView无法工作。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.app.FragmentTabHost
        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:layout_width="fill_parent"
            android:layout_height="fill_parent" >
        <HorizontalScrollView android:layout_width="fill_parent"
                              android:layout_height="wrap_content"
                              android:fillViewport="true"
                              android:scrollbars="horizontal">
            <TabWidget
                    android:id="@android:id/tabs"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="0"
                    android:orientation="horizontal" />
        </HorizontalScrollView>
            <FrameLayout android:id="@android:id/tabcontent"
                         android:layout_width="fill_parent"
                         android:layout_height="fill_parent" >
        </FrameLayout>
    </LinearLayout>
</android.support.v4.app.FragmentTabHost>

下面是FragmentTabHost:的一些代码

public class MyTabActivity extends FragmentActivity {
private FragmentTabHost mTabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.news);
    mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
    mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent);

    mTabHost.addTab(
            mTabHost.newTabSpec("tab1").setIndicator("Tab 1",
                    getResources().getDrawable(android.R.drawable.star_on)),
            FragmentTab.class, null);
    mTabHost.addTab(
            mTabHost.newTabSpec("tab2").setIndicator("Tab 2",
                    getResources().getDrawable(android.R.drawable.star_on)),
            FragmentTab.class, null);
    mTabHost.addTab(
            mTabHost.newTabSpec("tab3").setIndicator("Tab 3",
                    getResources().getDrawable(android.R.drawable.star_on)),
            FragmentTab.class, null);
    ......
    ......

如果我添加更多的选项卡,选项卡就会变小以适应屏幕。卷轴永远不会出现,但我希望它可以滚动!

怎么了?

使用Viewpager是个好主意。。。然而如果您想继续使用此实现,请考虑此XML布局。

 <HorizontalScrollView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:scrollbars="none" >
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"/>
        </HorizontalScrollView>

相关内容

  • 没有找到相关文章

最新更新