我正在开发一个使用 TabHost 的应用程序。在我的 TabHost 中,有四个选项卡。每个选项卡都有自己的 ActivityGroup。现在,我想要的是,在一个选项卡下我的 ActivityGroup 中的一个 Acitivty 中,我想暂时删除 Tabwidget,以便 frameLayout 将在设备的整个屏幕上可见。然后,当活动切换到另一个活动时,Tabwidget 将重新出现在屏幕上。所以第一个问题是,我可以这样做吗?如果那样,我该怎么做?如果不可能,那么是否可以在 Tabwidget 选项卡下的正常活动和 ActivityGroup 内的活动之间切换?
问问题
663 次
3 回答
1
StartActivity()
也在里面工作ActivityGroup
。因此活动将在完整屏幕中开始,finish();
并将发送回ActivityGroup()
.
于 2011-11-22T09:27:51.140 回答
1
对于底部的选项卡:
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);
}
于 2012-06-13T07:31:45.107 回答
0
由于TabWiget
是您的子类,View
因此您应该能够使用setVisibility()
.
您需要对 TabWidget 的引用 - 该引用需要在哪里,取决于将处理隐藏/显示的类。在下面的示例中,我将假设您将功能放入您的TabActivity
- 所以我们添加了两个方法和对的引用TabWidget
:
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 );
}
然后在Activity
需要隐藏选项卡的地方,您需要执行以下操作:
Activity activity = getParent(); //Might be getParent().getParent(); if you're inside an ActivityGroup.
if( activity instanceof MyTabActivity ) //Just to make sure.
((MyTabActivity) activity).hideTabs();
并重新显示选项卡,同样的事情,但调用((MyTabActivity) activity).showTabs();
。
于 2011-11-22T09:22:40.477 回答