如何解决哪种方式使用DataBinding更快
我了解到DataBinding可以比findViewById
快得多。
这是在这里说明:Android data binding vs findViewById for performance
我现在想知道以下哪个选项更快:
选项A
xml:
<TextView
android:id="@+id/my_text_view"/>
用法:
mBinding.myTextView.setText("DummyText")
选项B
xml:
<variable
name="dummy"
type="String" />
...
<TextView
android:text="@{dummy}"/>
用法:
mBinding.setDummy("DummyText")
解决方法
仅仅因为您将这两个选项视为完美的替代品,所以您试图使成本(速度)最小化,即使从结果上基本上看不出差异。
事实是,即使两个选项的结果相同,第二个也可以在将来(很有可能)决定使用ViewModel和LiveData时为您提供更大的灵活性,因为它们为您带来了很多好处调整代码。
例如,您可以使用所有MutableLiveData创建视图模型:
public class MyVM extends ViewModel {
private MutableLiveData<String> title = new MutableLiveData<>();
private MutableLiveData<String> text = new MutableLiveData<>();
}
将整个viewmodel设置为xml中的变量,然后直接使用您的变量:
mBinding.setNiceViewModel(myVM);
<variable
name="niceViewModel"
type="MyVM" />
...
<TextView
android:text="@{niceViewModel.title}"/>
<TextView
android:text="@{niceViewModel.text}"/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。