android – 片段交易, *** 作栏和后台堆栈

android – 片段交易, *** 作栏和后台堆栈,第1张

概述在我的主要活动中,我有一个带有NAVIGATION_MODE_TABS的 *** 作栏.每个选项卡的内容都是一个listfragment. 我想这样做,以便在点击列表项时,一个新的片段进入视图,并且 *** 作栏模式更改为NAVIGATION_MODE_STANDARD(以便现在隐藏选项卡). 我已设法使用以下代码: 在listitemclick方法中: ActionBar actionBar = getActi 在我的主要活动中,我有一个带有NAVIGATION_MODE_TABS的 *** 作栏.每个选项卡的内容都是一个Listfragment.

我想这样做,以便在点击列表项时,一个新的片段进入视图,并且 *** 作栏模式更改为NAVIGATION_MODE_STANDARD(以便现在隐藏选项卡).

我已设法使用以下代码:

在Listitemclick方法中:

Actionbar actionbar = getActivity().getActionbar();        actionbar.setNavigationMode(Actionbar.NAVIGATION_MODE_STANDARD);        Fragment albumListFragment = new AlbumListFragment();        albumListFragment.setArguments(bundle);        FragmentTransaction ft = getFragmentManager().beginTransaction();        ft.replace(androID.R.ID.content,albumListFragment);        ft.addToBackStack(null);        // Commit the transaction        ft.commit();        Log.i("FragmentList","Item clicked: " + ID);

问题是当我按下后退按钮时,标签仍然消失,前一个片段不会返回到视图中.

我做错了什么..是否与碎片堆叠有关?我应该采取另一种方式,甚至覆盖背压吗?

– 编辑 –

为清楚起见 – 我在调用fragmenttransaction.replace时调用addToBackStack,但是当我按下后退按钮时,前一个片段不会被恢复.

解决方法 也许这有点晚了,我试图重建你的问题好几个小时但没有成功.我试图通过问题中描述的方式从Actionbar Tab托管的片段中的ListvIEw切换到另一个视图(即ft.replace(androID.R.ID.content,albumListFragment);)但没有效果.在一些Google和stackoverflow之后,我使用 this way在选项卡中成功切换片段,但没有问题.

由于“ *** 作栏未正确显示”问题,它可能是由android developer guide中描述的后台恢复和UI更改引起的.您可能会尝试覆盖onBackStackChanged()回调并重新构建UI.

由于“backstack不会带来以前的片段”问题,您可能希望发布一些代码来帮助其他人重新构建问题以找到答案.

祝你有帮助.

总结

以上是内存溢出为你收集整理的android – 片段交易, *** 作栏和后台堆栈全部内容,希望文章能够帮你解决android – 片段交易, *** 作栏和后台堆栈所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存