0

以前のバージョンでは、バージョン 11 の例 (Google による) は、レイアウト内のフラグメントを初期化し、それらを非表示および表示します。一方、互換性の例では、コンストラクターを使用して文字通りフラグメントを作成します。

1) 通常のフラグメント :

Fragment fragment = (MyFragment) getFragmentManager().findFragmentById(R.id.fragment);

2) 互換パッケージの例:

Fragment fragment = new MyFragment(this);

2 番目の方法に従うと、アクティビティ サイクルがおかしくなりそうです。

たとえば、 getActivity() はフラグメントで null を返します。

そして、他にもいくつかの問題があります。

互換パッケージをサポートしながら、それを行う正しい方法はどれですか?

4

1 に答える 1

0

2番目の方法を使用する場合は、アクティビティに関連付けられていないクラスのインスタンスを作成するだけです。その後、addまたはreplaceを使用して動的に追加する必要があります。

最初のオプションは、アクティビティがビューを拡張するために使用するxmlファイルにフラグメントを埋め込んだ場合に機能します

于 2011-11-22T14:38:20.680 に答える