gpt4 book ai didi

android - 从 TabHost 中的 tabcontent 销毁或完成 Activity ?

转载 作者:行者123 更新时间:2023-11-29 21:09:31 26 4
gpt4 key购买 nike

我有一个应用程序,我在其中使用 Tab Host 在单个屏幕上进行多项 Activity 。这就是我将选项卡添加到选项卡主机的方式。

TabHost tabHost = getTabHost();
TabSpec tab1 = tabHost.newTabSpec("Tab1");
View view = getLayoutInflater().inflate(R.layout.tab_indicator, myLayout, false);
tab1.setIndicator(view);
tab1.setContent(new Intent(getApplicationContext(), MyClass1.class));
tabHost.addTab(tab1);

在我的指示器自定义 View 中,有一个关闭按钮应该关闭该选项卡和与其关联的 Activity 。以下是在选项卡上单击关闭按钮时我如何从 Tab-Widget 中成功删除 View 。

tabHost.getTabWidget().removeViewAt(index_of_tab);

此代码删除选项卡,但不会删除在 FrameLayout (tabcontent) 中启动的 Activity ,并且当打开具有不同 Acvitiy 的不同选项卡时,它会再次显示此 Activity 。

例如,一旦我打开一个包含 Activity MyClass1 的选项卡并将其关闭。我再次打开一个包含 Activity MyClass2 的新标签页,但旧 Activity MyClass1 再次出现而不是 MyClass2

我做错了吗?如果错误,关闭选项卡及其相关 Activity 的正确方法是什么?

请帮助。谢谢。

最佳答案

我不得不使用 TabHost在我的一个项目中,就选项卡关闭而言,我放弃了它并以粗暴的方式做到了,看起来 TabHost关闭标签时有点棘手。

所以我最后调用了.clearAllTabs()并只恢复我想保留的标签。当你意识到一旦你设置了你的TabHost.TabSpec,整个事情就更糟了。对象,您无法检索它,没有任何 getTabSpec()选项卡或类似方法,所以我最终声明了一个 ArrayMap<String, TabHost.TabSpec>每次我添加一个选项卡时,我也会将其保存在该 map 中。

这样每次我都要调用clearAllTabs()TabHost 上,我只需要遍历 map 并调用 .addTab()我想在每个选项卡上保留 TabHost.TabSpec作为参数(当然,还要从 map 中删除我想清除的参数)。

关于android - 从 TabHost 中的 tabcontent 销毁或完成 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23410172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com