アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

ToolBarとかのサポートライブラリでDataBinding

Android data bindingで定義済みの属性リスト - Qiita
android:onMenuItemClick」とか定義されてるはずなのに使えんなと思ってまさかと思い確認。

原因

extensions/baseAdapters/src/main/java/android/databinding/adapters/ToolbarBindingAdapter.java - platform/frameworks/data-binding - Git at Google
「Toolbar.class」

対策

TOPとかに追加した kotlin

@BindingMethods(
        BindingMethod(type = android.support.v7.widget.Toolbar::class, attribute = "android:onMenuItemClick", method = "setOnMenuItemClickListener"),
        BindingMethod(type = android.support.v7.widget.Toolbar::class, attribute = "android:onNavigationClick", method = "setNavigationOnClickListener")
)
class なんでもいい()

こう書いたほうが良いんじゃないっての

@BindingMethods(
        BindingMethod(type = android.support.v7.widget.Toolbar::class, attribute = "android:onMenuItemClick", method = "setOnMenuItemClickListener"),
        BindingMethod(type = android.support.v7.widget.Toolbar::class, attribute = "android:onNavigationClick", method = "setNavigationOnClickListener")
)
class ToolbarBindingAdapterV7() : ToolbarBindingAdapter()

おわり

むしろこう書けば関連付けられるのかと勉強になった。