android:tabhost在一个片段中,w 片段作为标签

android:tabhost在一个片段中,w 片段作为标签,第1张

概述正如标题所述,我正在尝试使用包含在片段中的tabhost,其中标签内容由片段定义.好吧, 我从谷歌的FragmentsTab例子开始.这显示了如何使用片段作为选项卡内容,但TabHost本身仍然托管在一个活动中.再次,我需要将标签主机托管在片段中. 我拿了FragmentsTab示例,并将代码移入onCreate()并将其移动到我的Fragment中的onCreateView(), @Overri 正如标题所述,我正在尝试使用包含在片段中的tabhost,其中标签内容由片段定义.好吧,

我从谷歌的FragmentsTab例子开始.这显示了如何使用片段作为选项卡内容,但TabHost本身仍然托管在一个活动中.再次,我需要将标签主机托管在片段中.

我拿了FragmentsTab示例,并将代码移入onCreate()并将其移动到我的Fragment中的onCreateVIEw(),

@OverrIDepublic VIEw onCreateVIEw(LayoutInflater inflater,VIEwGroup container,Bundle savedInstanceState) {    VIEw fragmentVIEw = inflater.inflate(R.layout.detail_fragment,container);    mTabHost = (TabHost) fragmentVIEw.findVIEwByID(androID.R.ID.tabhost);    mTabHost.setup();    mTabManager = new TabManager(getActivity(),mTabHost,R.ID.realtabcontent);    // Todo: localize    mTabManager.addTab(mTabHost.newTabSpec("info").setIndicator("file Info"),InfoFragment.class,null);    return fragmentVIEw;}

当我跑,我得到这个例外,

05-25 14:42:27.272: E/AndroIDRuntime(4701): Caused by: java.lang.IllegalStateException: Recursive entry to executePendingTransactions05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1343)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:429)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at com.zimbra.octopus.androID.TabManager.onTabChanged(TabManager.java:116)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.Widget.TabHost.invokeOnTabchangelistener(TabHost.java:359)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.Widget.TabHost.setCurrentTab(TabHost.java:344)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.Widget.TabHost.addTab(TabHost.java:216)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at com.zimbra.octopus.androID.TabManager.addTab(TabManager.java:92)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at com.zimbra.octopus.androID.DetailFragment.onCreateVIEw(DetailFragment.java:46)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:819)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:1053)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.support.v4.app.BackStackRecord.run(BackStackRecord.java:622)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1371)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:429)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at com.zimbra.octopus.androID.TabManager.onTabChanged(TabManager.java:116)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.Widget.TabHost.invokeOnTabchangelistener(TabHost.java:359)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.Widget.TabHost.setCurrentTab(TabHost.java:344)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.Widget.TabHost.addTab(TabHost.java:216)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at com.zimbra.octopus.androID.TabManager.addTab(TabManager.java:92)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at com.zimbra.octopus.androID.DetailFragment.onCreateVIEw(DetailFragment.java:46)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:819)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:1032)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1111)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.support.v4.app.FragmentActivity.onCreateVIEw(FragmentActivity.java:264)05-25 14:42:27.272: E/AndroIDRuntime(4701):     at androID.vIEw.LayoutInflater.createVIEwFromTag(LayoutInflater.java:563)

看着跟踪,我看到onCreateVIEw()用于DetailFragment(托管TabHost的片段)递归调用.不知何故,对TabManager.addTab()的调用(再次参见FragmentsTab示例)导致对DetailFragment.onCreateVIEw()的递归调用.

我究竟做错了什么?这有可能吗?
谢谢.

解决方法 AndroID不允许您在其他片段中嵌入一个片段.您的logcat表示您正在另一个中执行一个片段事务(即,对executePendingTransactions进行递归输入).这是不允许的,对不起! 总结

以上是内存溢出为你收集整理的android:tabhost在一个片段中,w /片段作为标签全部内容,希望文章能够帮你解决android:tabhost在一个片段中,w /片段作为标签所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1126587.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存