我正在使用针对API级别19进行编译的应用中的getChildFragmentManager()
,并将最低SDK设置为14.
getChildFragmentManager()
,因此在调用该方法时,以API级别14,15或16运行的设备将抛出NoSuchMethodError
。
我确实查看了有关此问题的所有其他StackOverflow问题,但他们似乎都没有回答这个问题:有没有办法让getChildFragmentManager()
方法在API级别17之前的设备上运行?如果是这样,怎么样?
该方法似乎不包含在v4或v13支持库中。我已尝试使用v4和v13支持库进行干净构建,但这似乎无法解决问题。
答案 0 :(得分:17)
有没有办法让getChildFragmentManager()方法在API级别17之前的设备上运行?如果是这样,怎么样?
使用Android支持包(android-support-v4.jar
,android.support.v4.app.Fragment
)中的片段的backport。
该方法似乎不包含在v4或v13支持库中。
是的,在 FragmentActivity
上,您需要使用Activity
基类才能使用片段反向移植。
它位于backport的Fragment
类中,用于管理该片段的子片段。
我尝试过使用v4和v13支持库的干净版本,但这似乎无法解决问题。
要么您没有更改为 FragmentActivity
Fragment
后端,要么您的支持库JAR已旧。 Here is a sample project演示了使用 FragmentActivity
Fragment
后端及其getChildFragmentManager()
。
答案 1 :(得分:0)
您可以尝试使用SupportFragmentManager:
yourFragment = (YourFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.playListFragment)