Android — 在DataBinding中使用android:visibility一直出錯怎麼辦 ?

JLin
2 min readJul 4, 2019

--

當你使用者某個viewModle的boolean進行設定View的Visibility卻發現怎麼會一直出錯?

譬如

android:visibility="@{viewModel.isShowed ? View.GONE : View.VISIBLE}"

而且跳出的錯誤又寫得很不清楚,這也是databinding一直以來的問題,發生錯誤的時候很難馬上 知道問題是什麼,尤其是當你改了很多東西才進行compile的時候

後來查了一下才知道原來,xml中並不知道View是一個什麼樣的資料,所以你必須在<data>中告知

<data>
<import type="android.view.View"/>
<variable
name="viewModel"
type="com.abc.viewmodel.DataViewModel" />
</data>

也就是重點需要加上

<import type="android.view.View"/>

這樣就可以了,DONE

--

--

JLin

台中 / JAVA / Android /Kotlin / Kotlin Native 對於Kotlin衍生的JVM等技術 Compose for web / desktop / Ktor Server,生成式AI (Gemini/OpenAI)各式應用, 都有小興趣