我正在尝试使用 Android 数据绑定库在应用程序中确定正确的 MVVM 分层。非常简单的布局,就像在大多数示例中一样,很好地抽象了 XML 布局绑定到我的 View Model 中的方法,用于通过 observables 进行事件处理和模型更新。但是,通常情况下,需要以编程方式(findViewById()...)和/或通过将样式属性注入字符串资源等方式进行 UI 自定义。
我是否应该将 Activity/Fragment 也视为 View 的一部分,并通过数据绑定在 VM 和布局之间做任何无法处理的事情,还是只使用从 VM 到 Activity/Fragment 的接口来处理这个更好(同时试图让VM保持POJO)?
-- 编辑:示例 1 --
在同一字符串中渲染具有多种颜色的 TextView:我最初的实现方式是将 CDATA 和字体标签包装在字符串资源中,并使用 findViewById().setText(Html.fromHtml(getString(..))) 进行渲染。我修改了我的布局,改为在我的 VM 中绑定为 android:text="@{viewModel.text1}",它调用我的片段的接口方法返回 Html.fromHtml(text),我的 VM 返回一个 Spanned to布局。考虑到严格的 MVVM,我可能不会这样定义 VM,所以感觉有点 hacky。