我有一个FragmentActive
,当用户浏览应用程序时,我将当前片段替换为用户选择的片段,并添加将交易添加到背包。一切正常,用户可以通过按下返回按钮返回到以前的片段。
当设备方向改变时会出现问题:假设用户看到的第一个片段是A,然后他导航到B,并从B导航到C。在横向模式下,可以更好地欣赏C中的内容,并且C有一个特殊的横向布局,因此用户旋转设备。我希望用户使用C语言进行新的定位。相反,用户看到的是景观。现在他需要再次从A导航到B,然后再导航到C,才能在横向视图中看到C。
我想在方向改变后保留靠背。
如果我在清单中的活动条目上使用configChange=“orientation”,则会保留backbackback,但由于未重新创建片段,因此无法加载新方向的正确布局。我敢打赌,当这种情况发生时,我可以使用一些讨厌的黑客来强制重新创建片段,但我认为应该有更好的解决方案来实现如此简单的事情。
显然我做错了什么,因为在这一页中,有一个解释说
-
这听起来像是我期望的行为,但在我的应用程序中没有发生。我错过什么了吗?我如何实现这种行为?
我看到过一些类似的问题,但到目前为止,没有一个能帮我解决这个问题。任何帮助都将不胜感激。
原来导航抽屉片段是在方向更改后重新创建的,因此它触发了onNavigationDrawerItemSelected,它总是替换android正在恢复的片段。我通过添加setRetainInstance(true)来修复它;在我的导航抽屉片段中。
我认为您在添加/替换片段之前没有检查savedInstanceState。试试这个:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Check that the activity is using the layout version
// with the fragment_container_main FrameLayout
if (findViewById(R.id.fragment_container_main) != null) {
// If we're being restored from a previous state,
// then we don't need to do anything and should return or else
// we could end up with overlapping fragments.
if (savedInstanceState != null) { //Do nothing, Android has got your back.
} else {
FragmentOne fragmentOne = new FragmentOne();
// Add the fragment to the fragment_container_main FrameLayout
getFragmentManager().beginTransaction()
.add(R.id.fragment_container_main,
fragmentOne,
"FRAG_ONE").commit();
}
}
}
我在应用程序中使用Sherlock操作栏。我在菜单中使用了“ifRoom | with text”功能。如果我在纵向模式下测试代码,我只能看到图标,如果我将方向旋转到横向,我仍然只能看到图标。另一方面,如果我使用横向,我可以在纵向和横向上看到文本和图标。这意味着当屏幕旋转时,操作栏不会刷新。我如何修复? 菜单里,我有 我还在清单文件中使用这一行来修复 但它不起作用。我运行我的代码android 2
我正在开发一个应用程序,基本上有一个行动栏。当我的应用程序启动时,活动创建片段并将它们附加到每个标签上,所以当我切换时,我会得到不同的视图。 当我试图旋转设备时,问题就出现了。经过一番挣扎,我注意到Android会像这样自动重新创建之前添加的片段:
在我的应用程序中,一个
我有一个活动,它在onCreate中加载一个片段(比如Fragment1)。当用户按下Fragment1中的按钮时,我用一个新片段替换Fragment1,比如Fragment2。问题是,在Fragment2中更改方向时,会重新创建活动,并显示Fragment1而不是Fragment2。(因为我在onCreate中创建了Fragment1)我如何坚持Fragment2并在方向更改时保持其状态? 谢谢
所以我正在用Visual Studio编写一个Android应用程序。我想要一个既有纵向又有横向的活动。当我打开我的设备时,我的活动中的数据消失了。所以我在网上查了一下,找到了一行放在清单中的数据,这很有效!Android:config changes = " orientation | keyboard hidden | screen size "除了我所有的视图都是无序的、错位的。我使用了两种