
我想这样做,以便在点击列表项时,一个新的片段进入视图,并且 *** 作栏模式更改为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 – 片段交易, *** 作栏和后台堆栈所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)