如何暂时删除TabHidget的TabHidget?

时间:2011-11-22 08:51:05

标签: android android-activity android-tabhost tabwidget activitygroup

我正在开发一个使用TabHost的应用程序。在我的TabHost中,有四个选项卡。每个选项卡都有自己的ActivityGroup。现在,我想要的是,在一个选项卡下的ActivityGroup中的一个Acitivty中,我想暂时删除Tabwidget,以便通过设备的整个屏幕可以看到frameLayout。然后,当活动切换到另一个活动时,Tabwidget将重新出现在屏幕上。所以第一个问题是,我可以这样做吗?如果那时,我该怎么做?如果不可能,那么是否可以在Tabwidget的选项卡下在ActivityGroup内切换正常活动和活动?

3 个答案:

答案 0 :(得分:1)

StartActivity()也在ActivityGroup内部工作。 因此,活动将在完整屏幕中开始,finish();将发送回ActivityGroup()

答案 1 :(得分: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);

}

答案 2 :(得分:0)

由于TabWigetView的子类,您应该可以使用setVisibility()隐藏/重新显示它。

你需要一个对你的TabWidget的引用 - 这个引用需要在哪里,取决于哪个类将处理hide / show。在下面的示例中,我假设您将功能放在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();