0

それで、それは再び私であり、動的UIにさらに取り組んでおり、成功効果が得られるポイントにほぼ到達したようです。しかし今、私の歩みは小さくなり、マイルストーンに向かってゆっくりと進んでいます。

FragmentManager と Fragments に基づいて完全に動的に作成された UI についてはまだ話していますが、それ自体にはテキストビュー、ボタン、テーブル列などのいくつかのサブ要素が取り込まれています。

私の oo 設計によると、フラグメント アクティビティの唯一のインスタンス メンバーであるコントローラー クラスがあります。

コントローラーのコンストラクターは、 FragmentManagerを作成してグローバルに保持するために、引数として渡されたフラグメント アクティビティのアクティビティ参照を取得します。

コントローラーは、フラグメントから派生したカスタム クラスのオブジェクトをインスタンス化します。

オーバーロードされたコンストラクターが正しく呼び出され、ベース ctor が呼び出され、その他の処理が実行されます。

次に、トランザクションを開始してコミットすることにより、渡されたアクティビティの助けを借りて、コントローラーの ctor で作成されたフラグメント マネージャーにオブジェクトを追加します。

コントローラは残され、フローは mainactivity に戻り、最後に setcontentview を発行します。

ただし、onCreateView が実行され、oViewCreated が実行されます。ここで、my と backcolor のレイアウトと 1 つのテストボタンを定義します。次に、すべてのものをUIにうまく配置します。コントローラークラスのフラグメント派生でテストしたところ、これは機能しました。しかし今、多かれ少なかれ実際の状況では、断片は見えません。コントローラーでコミットした後、デタッチを発行して再度アタッチし、再描画を強制します。

どこかでアトミック参照を渡す必要があると思います。これは可能でしょうか?

事前にTHX。

編集:解決しました。

これを削除しますか?

4

1 に答える 1

0

私は自分の質問に答えます(おそらく他の誰かも同様の問題を抱えていました)、私のアプローチが大丈夫かどうか知りたいです:

オーバーライドされたイベント ハンドラ onCreateView は、単に new View(getActivity()); を返す必要があります。

于 2013-11-01T16:05:18.857 に答える