4

我是android新手,我正在使用tabHost向它添加一些标签,它工作得很好但是当我在横向模式下旋转我的设备时它也可以正常工作但我不需要标签栏,因为它占据了很多空间而且我也有谷歌广告,所以它们都覆盖了一半的屏幕,并为用户留下了一点交互空间。我需要的是一个以某种方式隐藏标签栏的解决方案,就像我们可以在 iphone 中那样为它腾出一点空间用户进行交互。我需要一些紧急解决方案。谢谢

4

4 回答 4

6

我认为您应该将您的标签小部件包装在任何 ViewGroup 中,例如 LinearLayout 或 RelativeLayout,并在您的 tabActivity 中创建一个静态函数来显示/隐藏这个包装器,这里有一些代码可能对您有帮助。

<LinearLayout
        android:id="@+id/popupTabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone">
        <TabWidget android:id="@android:id/tabs"
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent"></TabWidget>
    </LinearLayout>

现在你的标签活动应该做这样的事情。

public class TabsView extends TabActivity { 
    public static LinearLayout popupTabs ;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        popupTabs = (LinearLayout) findViewById(R.id.popupTabs);

        // Your other code
        //............
        //............
    }

    // Show Tabs method
    public static void showTabs(){
        popupTabs.setVisibility(ViewGroup.VISIBLE);
    }

    // Hide Tabs method
    public static void hideTabs(){
        popupTabs.setVisibility(ViewGroup.GONE);
    }

}

现在您可以像这样从代码中的任何位置静态调用此方法

// hide tab from any activity
TabsView.showTabs();

// hide tab from any activity
TabsView.hideTabs()
于 2011-04-29T15:35:09.567 回答
5

为了Hide

mTabHost.getTabWidget().setVisibility(View.GONE);

为了Visible

mTabHost.getTabWidget().setVisibility(View.VISIBLE);
于 2013-09-01T18:13:55.280 回答
2

最简单的方法是创建不包含 TabHost 的 layout.xml 文件的第二个版本,并将其放在名为“layout-land”的资源文件夹中(“land”后缀是“landscape”的缩写)。请参阅此 SDK 文章了解更多信息。

于 2010-10-21T13:03:10.647 回答
0

除了做 Reuben 告诉您的事情之外,您还可以为两者之间的过渡设置动画,以便让变化更加平滑。

于 2010-10-21T13:04:53.593 回答