【发布时间】:2014-03-29 12:17:08
【问题描述】:
我正在创建一个从 windows phone 8 移植到 android 的应用程序。 我的android开发知识有限。
我正在使用导航抽屉。 我已经做了一些实现,我面临的问题/问题是在它们之间切换时恢复视图状态。
我正在使用 arcgis android sdk。 视图 1:列表视图中的地理空间数据,从 Internet 获取。 视图 2:显示您的位置和在视图 1 中选择(点击)的位置的地图 视图 3:一个设置视图,用于增加或减小从视图 1 获取项目的半径。
在视图之间切换时,我希望视图保持其状态(恢复状态)。
在这种情况下,最佳做法是什么?现在我正在使用片段。 问题是在切换片段时 onSaveInstanceState 没有被调用。
这是我用来切换片段的代码,它运行得不是很好:)
private void selectItem(int position) {
// Create a new fragment and specify the planet to show based on position
Fragment f;
FragmentTransaction ft = fragManager.beginTransaction();
switch(position) {
case 0:
if((f = fragManager.findFragmentByTag("home")) == null) {
f = Fragment.instantiate(this, HomeFragment.class.getName());
f.setRetainInstance(true);
ft.add(R.id.content_frame, f, "home");
} else {
ft.attach(f);
}
break;
case 1:
if((f = fragManager.findFragmentByTag("map")) == null) {
f = Fragment.instantiate(this, MapFragment.class.getName());
f.setRetainInstance(true);
ft.add(R.id.content_frame, f, "map");
} else {
ft.attach(f);
}
break;
case 2:
if((f = fragManager.findFragmentByTag("settings")) == null) {
f = Fragment.instantiate(this, SettingsFragment.class.getName());
f.setRetainInstance(true);
ft.add(R.id.content_frame, f, "settings");
} else {
ft.attach(f);
}
break;
}
ft.commit();
// Highlight the selected item, update the title, and close the drawer
mDrawerList.setItemChecked(position, true);
setTitle(tabs[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
【问题讨论】:
-
你想把你的片段放到后台吗?
标签: android navigation-drawer state-management