Sep*_*X75 5 android android-studio android-databinding
我定义了一个包含 2 的布局ViewStubs。它们的定义如下:
<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"/>
Run Code Online (Sandbox Code Playgroud)
在我的适配器中,我试图ViewStub通过 DataBinding 库生成的 ViewDataBinding访问TitleBinding. 尝试执行以下操作会导致错误。
TitleBinding binding = DataBindingUtil.bind(view);
ViewStub topDividerStub = binding.topDividerStub;
ViewStub bottomDividerStub = binding.bottomDividerStub;
Run Code Online (Sandbox Code Playgroud)
我收到此错误,应用程序无法编译。
Error:(31, 50) error: incompatible types: ViewStubProxy cannot be converted to ViewStub
Run Code Online (Sandbox Code Playgroud)
我通过将变量设置为 type 来解决它ViewStubProxy,允许它编译但给出不兼容的类型语法突出显示错误。如果可能的话,我想知道这样做的正确方法是什么。
这工作...
ViewStubProxy topDividerStub = binding.topDividerStub;
ViewStubProxy bottomDividerStub = binding.bottomDividerStub;
Run Code Online (Sandbox Code Playgroud)
导致
小智 1
我也有同样的问题。看来这是 DataBinding 的一个错误。我不知道。
或者你可以自己创建一个ViewStubProxy:
TitleBinding binding = DataBindingUtil.bind(view);
ViewStubProxy viewStubProxy = new ViewStubProxy((ViewStub) view.findViewById(R.id.viewStub));
viewStubProxy.setContainingBinding(binding);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
477 次 |
| 最近记录: |