【发布时间】:2016-05-07 02:28:31
【问题描述】:
我的班级扩展了LinearLayout,我使用DataBinding 来扩充布局。但是代码会抛出一个异常,即 view:null 上的 view 标签不正确。
这是我的代码:
public class DietListView extends LinearLayout {
private LayoutDietListViewBinding mBinding;
private List<?> mDietList = new LinkedList<>();
private LayoutInflater mInflater;
public DietListView(Context context) {
this(context,null);
}
public DietListView(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public DietListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
}
private void initView(Context context) {
mInflater = LayoutInflater.from(context);
mBinding = DataBindingUtil.inflate(mInflater, R.layout.layout_diet_list_view, null, false);
addView(mBinding.getRoot());
}
}
布局文件是:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bind="http://schemas.android.com/apk/res-auto">
<data>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
.....
</LinearLayout>
</layout>
【问题讨论】:
-
有一个类似的问题,这里有你的确切错误。 stackoverflow.com/questions/33116688/…
-
我看过了。但它不起作用。我在自定义视图类中使用dataBinding,不知道对不对
-
我无法重现这个。正在使用哪个版本的 Android gradle 插件?我用 Android Studio 2.1 和它附带的插件进行了测试。也有可能您正在扩充非绑定布局文件。
标签: android data-binding