我的Viewmodels包含在“ ViewModels”包中。当在我的片段布局xml文件中将其中一个设置为数据变量类型时,生成的ViewDataBinding类将尝试将包当作文件导入。例如:
import com.xyz.myapp.ViewModels;
Run Code Online (Sandbox Code Playgroud)
而不是:
import com.xyz.myapp.ViewModels.*;
Run Code Online (Sandbox Code Playgroud)
然后继续引用视图模型,因为这会ViewModels.MyFragmentViewModel导致进一步的错误。我发现解决此问题的方法是将我所有的视图模型文件都放在com.xyz.myapp目录中。这样做时,一切正常。
这和这里的要求相同。我的声誉不足,无法发表评论。我想念什么吗?我需要设置一些选项吗?还是这只是一个错误?
import com.xyz.myapp.ViewModels;
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="vm"
type="com.xyz.myapp.ViewModels.MyFragmentViewModel"/>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="@{vm.TEMP}" />
</LinearLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)
import com.xyz.myapp.ViewModels.*;
Run Code Online (Sandbox Code Playgroud)
这是生成的类。错误行被注释。4个错误
import com.xyz.myapp.ViewModels; //Error
public abstract class FragmentTestBinding extends ViewDataBinding {
@NonNull
public final CheckBox checkBox;
@NonNull
public final EditText editText;
@Bindable
protected ViewModels.ProfileViewModel mVm; //Error
protected FragmentTestBinding(DataBindingComponent _bindingComponent, View _root,
int _localFieldCount, …Run Code Online (Sandbox Code Playgroud)