0

我想要做的是拥有一个主/细节风格的应用程序,其中我的选择器选项之一是谷歌地图,地图布局下方有一些额外的按钮。

我所有的其他选项只是将 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

4

1 回答 1

0

Nested Fragments are suppported, please see:

http://developer.android.com/reference/android/app/Fragment.html#getChildFragmentManager()

I'm using them in a current app / project and they work great. Not sure if there is any additional constraint with using them with your mapping view?

// WildStyle

于 2013-06-26T07:30:41.437 回答