How To Remove Tabwidget oF A TabHost Temporarily?
我正在开发一个使用TabHost的应用程序。 在我的TabHost中,有四个选项卡。 每个选项卡都有自己的ActivityGroup。 现在,我想要的是,在一个选项卡下的ActivityGroup中的一个Acitivty中,我想暂时删除Tabwidget,以便通过设备的整个屏幕可以看到frameLayout。 然后,当活动切换到另一个活动时,Tabwidget将重新出现在屏幕上。 所以第一个问题是,我可以这样做吗? 如果那时,我该怎么做? 如果不可能,那么是否可以在Tabwidget的选项卡下在ActivityGroup内切换正常活动和活动?
对于底部的标签:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public void hideTab() { TabWidget tabwidget=getTabWidget(); RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)tabwidget.getLayoutParams(); params.setMargins(0, 0, 0, -100); } public void showTab() { TabWidget tabwidget=getTabWidget(); RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)tabwidget.getLayoutParams(); params.setMargins(0, 0, 0, -3); } |
所以活动将在完整的屏幕中开始,
由于
你需要一个对你的TabWidget的引用 - 这个引用需要在哪里,取决于哪个类将处理hide / show。 在下面的示例中,我将假设您将功能放在
1 2 3 4 5 6 7 8 9 | TabWidget myTabWidget; //You will need to find it in the layout in onCreate using findViewById( R.id.idOfYourTabWidget ). public void hideTabs() { myTabWidget.setVisibility( View.GONE ); } public void showTabs() { myTabWidget.setVisibility( View.VISIBLE ); } |
然后在需要隐藏选项卡的
1 2 3 | Activity activity = getParent(); //Might be getParent().getParent(); if you're inside an ActivityGroup. if( activity instanceof MyTabActivity ) //Just to make sure. ((MyTabActivity) activity).hideTabs(); |
并重新显示选项卡,相同的事情,但调用