无法使嵌套片段生效,无法解析getChildFragmentManager

时间:2014-03-26 15:53:21

标签: java android android-fragments android-support-library android-nested-fragment

我已经在这个问题上工作了几个小时了。

我的简单应用在片段中显示谷歌地图。在某些操作后,我想在此地图上方放置一个片段覆盖,因此在收到onClickListener事件后,我试图运行:

void addfragment() {

    Fragment placeDetails = new PlaceDetailsFragment();
    FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
    transaction.add(R.id.details, placeDetails).commit();

}

根据http://developer.android.com/about/versions/android-4.2.html#NestedFragments

的示例

我自动导入了以下类:

import android.app.Fragment;
import android.app.FragmentTransaction;

除getChildFragmentManager外,每种类型和方法都可以解析。在做了一些挖掘之后,我不得不猜测getChildFragmentManager不是普通Fragment lib的一部分,但我必须安装支持库,特别是v4。所以我安装了v7,它还包括v4 jar,然后重新导入片段类:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;

GetChildFragmentManager仍然无法解决。

我尝试手动添加

import android.support.v4.app.FragmentManager;

因为,getChildFragmentManager是一个片段的方法,它应该返回一个FragmentManager,但仍然没有解析。

我觉得好像我做错了什么,谷歌搜索对我没什么帮助。他们一直在谈论将v4.jar移动到ActionBarSherlock的lib目录,但我在这个项目中并不需要。我可能会在以后获得一个正常的Action Bar,但我不明白为什么嵌套片段需要它。

另外,我正在使用API​​ 18编译成minSDKversion 18和targetSDK版本18,那么为什么我甚至需要支持库呢?它是一个4.2功能,SDK 17,它也应该在SDK 18中,对吗?如文档中所述,不支持使用支持库吗?

The Android Support Library also now supports nested fragments,
so you can implement nested fragment designs on Android 1.6 and higher.

我做错了什么?任何人的想法或解决方案?我已经在这里工作了好几个小时,现在已经超过2天了,理智是稍纵即逝的:)

提前致谢!

1 个答案:

答案 0 :(得分:1)

确保从android.support.v4.app包中导入FragmentManager。

import android.support.v4.app.FragmentManager;

我没有完整的代码视图。希望这能解决您的问题。