У меня есть макет, который содержит 2 ViewStubs
. Они определяются следующим образом:Почему Android Studio не удается создать при доступе к ViewStub через ViewDataBinding?
<ViewStub
android:id="@+id/top_divider_stub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/top_divider_layout"
android:layout="@layout/include_line_separator_horizontal"/>
<ViewStub
android:id="@+id/bottom_divider_stub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/bottom_divider_layout"
android:layout="@layout/include_line_separator_horizontal"/>
В моем адаптере, я пытаюсь получить доступ к ViewStub
через ViewDataBinding генерируемого библиотекой DataBinding, в моем случае это TitleBinding
. Попытка сделать следующее приводит к ошибке.
TitleBinding binding = DataBindingUtil.bind(view);
ViewStub topDividerStub = binding.topDividerStub;
ViewStub bottomDividerStub = binding.bottomDividerStub;
Эта ошибка возникает, когда приложение не удается скомпилировать.
Error:(31, 50) error: incompatible types: ViewStubProxy cannot be converted to ViewStub
Я работал вокруг него, установив переменную типа ViewStubProxy
, что позволяет компилировать, но дает ошибку синтаксиса несовместимые типы подсветки. Я хотел бы знать, как правильно это сделать, если это возможно.
Это работает ...
ViewStubProxy topDividerStub = binding.topDividerStub;
ViewStubProxy bottomDividerStub = binding.bottomDividerStub;
Результирующее в