2010-10-21 113 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);