如何暂时删除TabHost的Tabwidget



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

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

For tab in the bottom:

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);
}

由于TabWigetView的子类,您应该能够使用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();代替。

相关内容

  • 没有找到相关文章

最新更新