0

プロプライエタリな製品と統合するための非常に複雑な UI を作成しようとしています (現在は Web ベースで完全なハックです)。各画面/ビューには同じルック アンド フィールがあり、すべてのページの同じ場所に同じ 2 ~ 3 個のボタンがあります。その表示変更のほんの一部です。

これがスイングである場合、JPanel を定義し、この中央コンポーネント以外のすべてを構成してから、インスタンスごとに異なるフィールドを提供する上記のパネルのインスタンスを作成します。

この UI フローの 90% の共通部分を 1 つのビューとして表現し、いくつかの空白を埋めたいと思います。

それをしてもいいですか?それ、どうやったら出来るの?嫌いな人はどうぞ。完全な Android ルーキー (経験豊富な Java 獣医)

4

1 に答える 1

1

それをしてもいいですか?

もちろん!ただし、その環境では「完全な Swing 新人」のような問題ではないのと同様に、「完全な Android 新人」のような問題とは言いません。

それ、どうやったら出来るの?

いくつかの可能なアプローチがあります。最も簡単な解決策は、UI 全体を定義するレイアウト リソース ファイルを定義するFrameLayoutことです。次に、実行時にそのレイアウトを使用するときに、その中に何かを入れて「空白を埋める」ことになりますFrameLayout

  • 各「画面/ビュー」を にしActivityたい場合は、前述のレイアウト ファイルを で使用し、setContentView()「一部の空白」が何であれ、手動で膨張 (または Java で直接インスタンス化) します。膨らませたもので「空白を埋める」ように要求addView()します。FrameLayout必要に応じて、ほとんどのロジックを基本クラスにgimmeTheBlanksPlease()まとめて、FrameLayout.

  • 各「画面/ビュー」を にしFragmentたい場合は、前述のレイアウト ファイルを で使用し、onCreateView()「一部の空白」が何であれ、手動で膨張 (または Java で直接インスタンス化) します。FrameLayout繰り返しますが、そのようなものをviaに注ぐとaddView()、このコードのほとんどは抽象基底クラスで実装できます。

より複雑なソリューション (例: custom ViewGroup) もあります。

唯一の簡単な解決策は「この UI フローの 90% の共通部分」が 1 つのレイアウト ファイルで定義できる場合、<include>タグを使用してレイアウトを構成することです。「画面/ビュー」ごとのレイアウトに含まれ、実行時に使用される、共通の要素を持つ 1 つの共通のレイアウトがあります。繰り返しになりますが、おそらく抽象的なベースを持っているActivityFragment、共通のものについて知っているでしょう。ただし、XML と配置がどのように機能したかという理由だけで、"90%" が大量のレイアウト ファイルに分割されてしまうと、これは面倒です。

于 2013-06-20T00:29:38.067 に答える