我想要做的是拥有一个主/细节风格的应用程序,其中我的选择器选项之一是谷歌地图,地图布局下方有一些额外的按钮。
我所有的其他选项只是将 Fragment 加载到 FrameLayout 中,使用类似:
getSupportFragmentManager().beginTransaction()
.replace(R.id.content, myFragment, fragTag)
.commit();
我不能用 MapFragment 做到这一点,因为我需要布局中的其他东西并且不支持嵌套片段(但希望如此)。因此,我需要用包含 Fragment 的复合视图替换常规 Fragment,但我不确定 Fragment 管理应该如何在这里工作。
我不认为我可以打电话
getSupportFragmentManager().beginTransaction()
.replace(R.id.content, myCompositeView, fragTag)
.commit();
目前我正在这样做:
Fragment currentFrag = getSupportFragmentManager().findFragmentById(R.id.content);
getSupportFragmentManager().beginTransaction().remove(currentFrag);
LayoutInflater inflator = LayoutInflater.from(this);
ViewGroup container = (ViewGroup)findViewById(R.id.content);
container.removeAllViews();
View mapView = inflator.inflate(R.layout.store_finder, container, true);
再次用其他片段替换它时会有点混乱,因为我需要再次从布局中删除所有视图。另外,我不确定在这样设置后如何正确删除 MapFragment。
我会很感激任何帮助,让我放心:)
脚注:显然嵌套片段现在是一件事,但不确定这是我想要简单的方式。http://developer.android.com/about/versions/android-4.2.html#NestedFragments