2010-10-21 178 views
4

我是新到Android,我使用tabHost添加一些标签给它,它的工作相当的精细,但是当我在横向模式下转动我的设备也有工作很好,但我不需要标签栏,因为它涵盖了很多空间,我也有谷歌广告,因此它们都覆盖了屏幕的一半,并留下一点空间供用户进行交互。我需要的是解决方案以某种方式隐藏标签栏,就像我们可以做到的那样在iphone做出一点空间供用户interact.I需要一些解决方案urgent.Thanks标签栏隐藏问题的android

回答

2

最简单的方法是创建您的layout.xml文件的第二个版本不包括TabHost并把它放在一个名为'layout-land'的资源文件夹('land'后缀是'landscape'的缩写)。请参阅this SDK article了解更多信息。

+0

那么我的活动XML不不包括tabhost我的XML是简单的,但我的活动是从tabhost activity.So加载我怎么能解决这个问题,我有我的活动XML没有tabhost,我需要尽快你的建议很好我还以为上解决这个问题。我告诉你,我什么所作所为。有tab.xml只包括tabhost,tabwidget这个XML装入myTabAC从这里设置我的标签,并呼吁每个选项卡上的其他活动延伸tabactivity,但所有其他活动不要“T使用tabhost他们xml.Your帮助将是对我和其他人谁可能有同样的问题,我期待救我大量的时间寻找.....感谢好友 – 2010-10-22 12:18:58

0

除了做什么鲁本告诉你将两个动画之间的过渡,这样的变化会更加顺畅。

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() 
+0

+1同样的事情,是非常有用的... – Simmant 2013-11-15 07:25:57

5

对于Hide

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

对于Visible

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