6
我有一个简单的活动,其中有一个导航抽屉。它的一个入口是一个WebView,它需要大量的加载(它显示Gmail,以便遵循所有这些令人讨厌的重定向需要很多)。如何防止从NavigationDrawer中选择片段重新创建?
即使发生不同的选择,我也想保留片段。我认为这些解决方案可能会起作用。他们没有。
1)不重新创建片段:即使mWebmailFragment 实际上是不为空,onCreateView()被在任何情况下被调用。 2)如果调用了onCreateView(),则保留WebView对象状态可能会起作用。那么,它不:调试我发现savedInstanceState是总是为空。我不知道为什么。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
// Retain instance
setRetainInstance(true);
//....
// SavedState
if (savedInstanceState != null) {
mWebView.restoreState(savedInstanceState);
} else {
// do stuff
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mWebView.saveState(outState);
}
当你选择另一个碎片时,你如何改变碎片?如果你“替换”它们,也许试试“show()”和“hide()”。 – Maximosaic
你有没有找到解决方案? –
不...我使用了“隐藏所有 - 显示选择”的逻辑,但是当方向改变发生时,所有东西都会混乱起来。就目前而言,我解决了在纵向模式下强制用户界面的问题,但是您可以了解它有多少限制。 – Gianluca