android中的可滚动标签

时间:2012-02-22 13:18:49

标签: android tabs

我想在android中拥有可滚动的标签。我尝试将HorizontalScrollView应用于TabWidget,但它无效。 任何想法为什么它不起作用?

这是main.xml:

<?xml version="1.0" encoding="utf-8"?>
<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">
    <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="wrap_content"
                 android:layout_height="wrap_content"/>
    </HorizontalScrollView>
    <FrameLayout android:id="@android:id/tabcontent"
                 android:layout_width="fill_parent"
                 android:layout_height="fill_parent" />
  </LinearLayout>
</TabHost>

2 个答案:

答案 0 :(得分:0)

试试这个对我有用: -

 <HorizontalScrollView android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:fillViewport="true"
                    android:scrollbars="none">
    <LinearLayout android:orientation="vertical"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent">

          <TabWidget android:id="@android:id/tabs"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"/>

        <FrameLayout android:id="@android:id/tabcontent"
                     android:layout_width="fill_parent"
                     android:layout_height="fill_parent" />
      </LinearLayout>
      </HorizontalScrollView>

答案 1 :(得分:0)

我之前遇到过同样的问题。我正在做同样的事情,但将Tabwidget放在Horizo​​ntalScrollView中是不够的,它在运行时缩小。所以我们必须在运行时通过循环定义小部件的高度和宽度。如下所示

for(int i=0;i<=numbeOfTabs;i++)
        {
            mTabHost.getTabWidget().getChildAt(i).getLayoutParams().width=100;
            mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height=100;
        }