我一直在关注this教程,以便在第一次启动时打开绘图的导航抽屉。那部分非常有效。我现在面临的问题是,在方向改变时,它会回到第一个片段而不是保持当前片段。我已经尝试添加以下代码来帮助解决这个问题,但它没有帮助。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
getSupportActionBar().setTitle(mTitle);
}
这适用于Google提供的教程,但我无法在第一次运行时打开抽屉,并且能够关闭项目选择上的抽屉(这是一个不同的问题)。
我还尝试在没有帮助的情况下将adroid:configChanges="orientation|screenSize"
添加到清单中。
有人可以给我一些关于如何在切换到横向时阻止变化的建议吗?我已经在这个问题上工作了几个星期了。 :/
答案 0 :(得分:0)
在方向更改后,创建的片段将重新附加到活动,因此请检查 savedInstanceState
是否为空(首次运行),然后创建片段并附加它们。
在配置更改(方向更改)后,您的 onCreate
将再次被调用,您现在需要担心的是在方向更改之前显示最后选择的片段,那么你是什么可以做的是覆盖 onSaveInstanceState
来存储对所选片段(例如索引值)的引用,然后在 onCreate
中获取该值的捆绑并使用 FragmentTransaction
来显示相应的片段。
不确定这是否是处理它的最佳方式,但这是我采用的方式,因为我没有找到任何其他方法。
关于抽屉的关闭,您可以使用 drawer.isDrawerOpen
检查抽屉是否已打开,并使用 drawer.closeDrawer
关闭抽屉,&#39 ;不适合你?请务必在 Click Listener
。
希望对你有所帮助,祝你好运。