MVVM 這種開發(fā)模式的作用就是更好的實現(xiàn)UI和數(shù)據(jù)分離?
Android 實際開發(fā)中的問題是 不同的業(yè)務邏輯需要View在不同的要求下顯示不同數(shù)據(jù)
具體的使用步驟是
1.先保證自己的Android studio 為最新版本?
然后在build 文件里加下面的代碼?
android {
? ? ?dataBinding{
? ? ? ? ? ?enabled=true
? ? }
}
然后重新編輯項目
2.新建一個layout 布局
大概長這樣
3.新建一個Activity
public classMVVMActivityextendsAppCompatActivity {
? ? @Override
? ? ? ?protected voidonCreate(Bundle savedInstanceState) {
? ? ? ? ? ? ? super.onCreate(savedInstanceState);
//這個MvvmActivityBinding 是系統(tǒng)自動構建的 就是自己activity 名字打出來就可以有代碼提示
MvvmActivityBinding binding= ? ? ? ? DataBindingUtil.setContentView(this,R.layout.mvvm_activity);
? ? ? ? ?User user=newUser("success","222");
? ? ? ? ?binding.setUser(user);
}
}
具體的使用我現(xiàn)在也是實驗階段目前沒有放在項目中
感覺很不錯
實踐問題
1.實用表達式語法
依據(jù)不同的后臺判斷改變顯示值垮卓,以及是否顯示
android:text="@{test.open ? @string/text_open_custody:@string/text_notopen_custody}
設置動態(tài)顯示的過程中出現(xiàn)下列的報錯
原因是我的語法為
android:visibility="@{test.isOpen ? View.INVISIBLE : View.VISIBLE}"
但是這樣寫是需要導入相關聯(lián)包的瓦侮,需要在最上層節(jié)點加入
同理 使用顏色設置語法
android:textColor="@{large ? Color.RED : Color.YELLOW}"/>
導入的就是?
<import type=android.graphics.color/>
2.自定義view的問題
實踐中出現(xiàn)了一個問題比如我們需要在acrivity 中產生一個dialog 那這樣的話是不能使用databing來進行數(shù)據(jù)綁定的
很遺憾沒有找到合適的方法去處理這個問題
參考資料 data binging ?官方地址
https://developer.android.com/topic/libraries/data-binding/index.html 自己翻墻翻譯比較好
價值很好的實戰(zhàn)經驗文章
http://www.reibang.com/p/96f8d3286a67