【发布时间】:2014-03-26 15:53:21
【问题描述】:
我已经研究这个问题几个小时了。
我的简单应用在片段中显示谷歌地图。在某些操作上,我希望在此地图上叠加一个片段,因此在收到 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 库的一部分,但我必须安装支持库,尤其是 v4。于是我安装了v7,其中也包含了v4 jar,然后回去重新导入片段类:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
GetChildFragmentManager 仍然无法解决。
我尝试手动添加
导入android.support.v4.app.FragmentManager;
因为 getChildFragmentManager 是一个片段方法,应该返回一个 FragmentManager,但仍然没有解析。
我觉得好像我做错了什么,谷歌搜索对我没有多大帮助。他们一直在谈论将 v4.jar 移动到 ActionBarSherlock 的 lib 目录,但我在这个项目中没有也不需要它。稍后我可能会得到一个普通的操作栏,但我不明白为什么嵌套片段需要它。
另外,我正在使用 API 18 编译到 minSDK 版本 18 和 targetSDK 版本 18,那么为什么我什至需要支持库?这是 4.2 的功能,SDK 17,它也应该在 SDK 18 中,对吗?如文档中所述,支持库的使用是否仅适用于较低的 SDK?
The Android Support Library also now supports nested fragments,
so you can implement nested fragment designs on Android 1.6 and higher.
我做错了什么?有人有任何想法或解决方案吗?我已经玩了好几个小时了,现在已经超过 2 天了,理智转瞬即逝 :)
提前致谢!
【问题讨论】:
-
确保您发布的
addfragment()方法属于您的自定义 Fragment 类(不是 Activity,不是其他任何东西)。你能验证一下吗? -
是的,你是对的。我在活动中使用它。我真是个笨蛋:)如果您可以发表评论作为答案,我会将其标记为正确。
标签: java android android-fragments android-support-library android-nested-fragment