2010-10-21 2 views
4

Я новичок в android, я использую tabHost, добавляя некоторые вкладки к нему, его работа отличная, но когда я вращаю свое устройство в ландшафтном режиме, он также работает там отлично, но мне не нужен там, потому что он занимает много места, и у меня также есть рекламные объявления Google, поэтому оба они покрывают половину экрана и оставляют мало места для взаимодействия с пользователем. Все, что мне нужно, - это решение как-то скрыть панель вкладок, как мы можем это сделать в iphone, чтобы немного поработать для пользователя. Мне нужно некоторое решение срочно. Спасибоtab bar hiding issue android

ответ

2

Простейшим способом было бы создать вторую версию вашего файла layout.xml, который не включает TabHost и помещает его в папка ресурса с именем «макет-земля» (суффикс «земля» не подходит для «пейзажа»). Для получения дополнительной информации см. this SDK article.

+0

Ну моя деятельность XML делает не включать tabhost мой xml прост, но моя активность загружается из активности tabhost. Так как я могу решить эту проблему, даже если у меня есть моя активность xml без tabhost, мне нужно решить эту проблему, скоро ваше предложение будет хорошим, я также подумал об этом . Я расскажу вам, что я делаю. У меня есть tab.xml, который включает только tabhost, tabwidget и этот xml, загружается в myTabAC extends tabactivity, здесь я устанавливаю свои вкладки и вызываю другие действия на каждой вкладке, но все остальные действия 't использовать tabhost в своей xml. Ваша помощь будет очень полезна для меня и других людей, которые могут иметь такую ​​же проблему. –

0

Помимо того, что Рубин говорит вам, вы должны были бы оживить переход между обоими, чтобы изменения были более гладкими.

6

Я думаю, что вы должны обернуть виджет вкладки в любую группу ViewGroup, такую ​​как LinearLayout или RelativeLayout, и создать статическую функцию в вашей вкладке, чтобы показать/скрыть эту оболочку. Вот вам немного кода.

<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

5

Для Hide

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

Для Visible

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