Android データ バインディング ライブラリを使用して、アプリで適切な MVVM レイヤリングを突き止めようとしています。ほとんどの例のように、非常に単純なレイアウトは、イベント処理とオブザーバブルを介したモデル更新のためにビュー モデルのメソッドにバインドされた XML レイアウトでうまく抽象化されます。ただし、多くの場合、プログラム (findViewById()...) や文字列リソースにスタイル属性を挿入するなどの方法で実行する必要がある UI のカスタマイズがあります。
アクティビティ/フラグメントをビューの一部として扱い、データバインディングを介して VM とレイアウトの間で処理できないことを行う必要がありますか、それとも VM からアクティビティ/フラグメントへのインターフェイスでこれを処理する方がよいでしょうか ( VM を POJO に維持しようとしている間)?
-- 編集: Example1 --
同じ文字列で複数の色を使用して TextView をレンダリングする: これを最初に実装した方法は、文字列リソースで CDATA とフォント タグをラップし、findViewById().setText(Html.fromHtml(getString(..))) でレンダリングすることでした。代わりに android:text="@{viewModel.text1}" として VM にバインドするようにレイアウトを変更しました。これは、Html.fromHtml(text) を返すフラグメントへのインターフェイス メソッドを呼び出し、VM は Spanned to を返します。レイアウト。厳密な MVVM を考えると、VM をこのように定義することはおそらくないので、少しハッキーに感じます。