gpt4 book ai didi

android - 为什么通过 ViewDataBinding 访问 ViewStub 时 Android Studio 构建失败?

转载 作者:太空宇宙 更新时间:2023-11-03 11:04:16 24 4
gpt4 key购买 nike

我定义了一个包含 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"/>

在我的适配器中,我试图通过 DataBinding 库生成的 ViewDataBinding 访问 ViewStub,在我的例子中是 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;

导致

error screenshot

最佳答案

我也遇到了同样的问题。看来这是 DataBinding 的一个错误。我不确定。

或者你可以自己创建一个ViewStubProxy:

TitleBinding binding = DataBindingUtil.bind(view);

ViewStubProxy viewStubProxy = new ViewStubProxy((ViewStub) view.findViewById(R.id.viewStub));

viewStubProxy.setContainingBinding(binding);

关于android - 为什么通过 ViewDataBinding 访问 ViewStub 时 Android Studio 构建失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35734923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com