2
我已經將一個從布爾型到可見性的BindingConversion,但Android無法找到它,但只有當我在包含標記中使用它時。它適用於FrameLyout等其他元素。Android無法在包含標記中找到BindingConversion
在我的抽象的視圖模型:
@BindingConversion
public static int convertBooleanToVisibility(boolean visible) {
return visible ? View.VISIBLE : View.GONE;
}
然後在我的XML(TestViewModel從視圖模型繼承):
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewModel"
type="oliveradam.testapp.viewmodels.TestViewModel"/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
app:theme="@style/toolbarStyleMusicView"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:minHeight="?attr/actionBarSize">
</android.support.v7.widget.Toolbar>
<include
android:visibility="@{viewModel.isVisible}"
layout="@layout/layout_test"
app:viewModel="@{viewModel}" />
</LinearLayout>
</layout>
錯誤:(139,29)錯誤:無法找到符號方法setVisibility(布爾)
我正在使用Android Studio 2.2 RC。
如果硬編碼的可見性,而不是使用數據綁定,它的工作? ''[未記錄爲支持任意屬性](https://developer.android.com/training/improving-layouts/reusing-layouts.html#Include)。 –
CommonsWare
不,錯誤:(142,30)錯誤:無法找到符號方法setVisibility(int) –
然後推測'android:visibility'不可用於''。 –
CommonsWare