标签栏隐藏问题android

时间:2010-10-21 12:47:51

标签: android android-tabhost

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

4 个答案:

答案 0 :(得分:6)

我认为您应该将Tab小部件包装在任何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()

答案 1 :(得分:5)

Hide

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

Visible

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

答案 2 :(得分:2)

最简单的方法是创建一个layout.xml文件的第二个版本,该文件不包含TabHost并将其放在名为'layout-land'的资源文件夹中('land'后缀是'landscape'的缩写“)。有关详细信息,请参阅this SDK article

答案 3 :(得分:0)

除了做Reuben告诉你的事情,你将动画两者之间的过渡,以便更改更顺畅。