MainActivity
のアクティビティーをフラグメントMainFragment
と考えてください。このフラグメントには、複雑なレイアウト階層があり、図書館com.framer:frame_me:1.1
からのビューグループFrame
があります。フレーバー特有のコード
私は2つの味foo
とbar
、と私は、このFrame
がbar
味ではなくfoo
でしかないようにしたい、XML要素のJavaコードと依存を持っている場合。私はこれをどのようにするべきですか?
私は、フラグメントとそのXMLに関する
barCompile 'com.framer:frame_me:1.1'
しかし、何を使用して依存関係をコンパイルすることができます。同じコードを2つの場所に保持したくないので、2つのバリエーションを両方のフレーバに書き込むことは望ましくありません。
一つの可能性のあるアイデア(おそらく悪い1)私の心の中でこのことを次のとおりです。
- が
bar
ソースセット内の別のファイルにXML要素を移動します。同じ名前のfoo
ソースセットにViewStub
要素を追加します。このXMLファイルには、フラグメントXMLにinclude
を含めるようにします。 - ソースセットの
Frame
ビューを処理するインターフェイスを追加します。空の実装をfoo
ソースセットに追加し、1つをbar
ソースセットに追加します。このようにして、すべてのロジックはbar
のままとなりますが、すべての共通ロジックはソースセットmain
に残ります。
これは、フレーバー固有のコードとxmlを書くだけで非常に多くの作業をしています。
フレームのビューを拡張してmain.xmlにこのビューを表示し、フレーバで実行している場合にのみGONEを有効にするのはなぜですか? ビュー –
の新しいサブクラス 'barCompile'に余分なxmlを追加することができます! 'Frame'は' foo'フレーバにも存在しません。これはエラーを投げます。または、私はあなたのコメントを正しく理解していませんでしたか? – Sourabh
あなたのXMLにも依存関係が必要ですか? –