上個星期咧寫了篇databinding的入門使用
[DataBinding綁定控件]http://m.itdecent.cn/p/fd4060bfe927
因為我也是剛用,所以本來自己用就有很多坑,現(xiàn)在踩得頭破血流了,開始補坑
android:text='@{"用戶評價(" + mine.evalNum } '
首先是這一行代碼,這樣文字里面加參數(shù)
我看到Google的文檔里面記得是外面單引號的,當然也有可能是我用錯了單引號或者本來就不是單引號,只是類似單引號,結(jié)果就是到處找不到DataBinding這個類,這是因為你配置不正確所以導(dǎo)致編譯不了,
所以外面要正常的雙引號,然后還有個寫法是
android:text="@{ '用戶評價' +mine.evalNum}"
看到?jīng)]用戶評價那幾個字用的是 ' 英文狀態(tài)下的單引號,這樣寫一樣GG
所以正確的是
android:text="@{用戶評價(+mine.evalNum}"
好吧我又孤陋寡聞了,死活打不出那個符號
那幾個字要用 英文狀態(tài)下鍵盤左上角那個符號才行
`
`
`
重要的事情寫3遍,就是這個符號括起來,要不分分鐘掉坑
然后再補個功能,關(guān)于include的
include還是不能找到控件,再吐槽一次太坑了
但是include里面是可以傳輸數(shù)據(jù)的
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bind="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="mine"
type="com.***.***.bean.***.***Bean"/>
</data>
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/mine_page_header"
bind:mine="@{mine}"/>
<include layout="@layout/mine_page_content"
bind:mine="@{mine}"/>
</android.support.design.widget.CoordinatorLayout>
</layout>
這樣子就把mine的數(shù)據(jù)傳輸進去include里面了,當然include里面還要配置,話說很多文檔都沒寫只告訴你要配置一遍,因為的確是配置一遍(···這話說的),事實就是里面的配置跟外面一樣就好,但是沒代碼不放心,那行,上代碼:
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bind="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="mine"
type="com.***.***.bean.***.***Bean"/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_color">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{`用戶評價(`+mine.evalNum+`)`}" //吶,就是這里這樣就可以用了
android:drawableLeft="@mipmap/iconfont_pingjia"
android:drawablePadding="2dp"
android:drawableRight="@mipmap/down_open"
android:padding="8dp"
android:layout_marginTop="8dp"
android:background="@color/white"/>
</LinearLayout>
</layout>
好,include這里還有個坑,在頭頂
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bind="http://schemas.android.com/apk/res-auto"
這幾行是自動生成的嘛
問題是正常會寫LinearLayout這個先,然后再配置的嘛
所以經(jīng)常這幾行會有些在LinearLayout里面了,這樣會導(dǎo)致整個databing編譯失敗,也是個大坑。
所以這些要放在layout里面,然后多余的,沒用到的最好刪掉,要不分分鐘還是會掉坑。
最后還有個坑,怪我個人問題,也不怕丟臉了·····
<include layout="@layout/mine_page_content"
bing:mine="@{mine}"/>
就是傳值進去的時候這樣一眼看過去沒啥問題,各種不報錯,但是一編譯就突突突的崩了,找了半天都沒找到,結(jié)果是·····
唉我都不好意思說了
bind寫成了bing,尼瑪就一個字母,問題是
xmlns:bing="http://schemas.android.com/apk/res-auto"
這句居然也能導(dǎo)進去,我擦咧····
所以說啊,經(jīng)常有時候不小心打錯一個字母,整個程序崩了,還特么那么隱蔽,簡直就是坑啊,說多了都是淚···
最后吐槽下:最近可能我寫代碼快了點,結(jié)果另外一個項目有個人走了,結(jié)果呢就是把我也塞進去了,現(xiàn)在兩個項目同時開工,而且都是那么趕,表示壓力山大,時間妥妥的不夠用了,然后可能這幾天寫文章都會斷斷續(xù)續(xù)的了。
再吐槽下:最坑的就是在別人的項目上動工,再坑的就是你用的東西跟別人的還完全不一樣,比如網(wǎng)絡(luò)框架我找就用retrofit2+okhttp+rxjava+butterknife+mvp了,然而他還是xutils,調(diào)個接口都麻煩,代碼還全部堆在activity里面,看著就頭疼
最最后:retrofit2+okhttp+rxjava+butterknife+mvp這套東西用來快速開發(fā)簡直不要太好用,雖然網(wǎng)上很多教程,等以后我有空了,也記錄下,把代碼分享出來,其實不難的,搭好框架就可刷刷刷的開用了,炒雞方便~