web-dev-qa-db-ja.com

getChildFragmentManager()およびサポートライブラリ

最小SDKを14に設定して、APIレベル19に対してコンパイルするアプリでgetChildFragmentManager()を使用しています。

getChildFragmentManager()はAPI 17で導入されたため、APIレベル14、15、または16で実行されているデバイスは、メソッドが呼び出されたときにNoSuchMethodErrorをスローします。

この問題に関する他のすべてのStackOverflow質問を調べましたが、どれもこの質問に答えていないようです。getChildFragmentManager()メソッドをAPIレベル17より前のデバイスで動作させる方法はありますか?もしそうなら、どうですか?

このメソッドは、v4またはv13サポートライブラリのいずれにも含まれていないようです。私はv4とv13の両方のサポートライブラリでクリーンビルドを試しましたが、問題が解決しないようです。

16
Mark

aPIレベル17より前のデバイスでgetChildFragmentManager()メソッドを機能させる方法はありますか?もしそうなら、どうですか?

Androidサポートパッケージ(_Android-support-v4.jar_、_Android.support.v4.app.Fragment_))からのフラグメントのバックポートを使用します。

このメソッドは、v4またはv13サポートライブラリのいずれにも含まれていないようです。

はい、それはFragmentActivityで、フラグメントバックポートを使用するために使用する必要があるActivity基本クラスです。

これはバックポートのFragmentクラスにあり、そのフラグメントの子フラグメントを管理します。

私はv4とv13の両方のサポートライブラリでクリーンビルドを試しましたが、問題が解決しないようです。

に変更しなかったか FragmentActivityFragmentバックポート、またはサポートライブラリJARが古い。 これはサンプルプロジェクトです の使用方法を示します FragmentActivityFragmentバックポートとそのgetChildFragmentManager()

18
CommonsWare

代わりにSupportFragmentManagerを試すことができます。

yourFragment = (YourFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.playListFragment)
0
user2288580