你好希望你一切都好。我将项目从旧版本迁移到了最新版本,即29。我解决了所有错误。问题是我无法解决工具栏错误。
<?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">
<data>
<variable
name="controller"
type="com.cvvm.Controller" />
<variable
name="menu"
type="java.lang.Integer" />
<variable
name="itemClickListener"
type="androidx.appcompat.widget.Toolbar.OnMenuItemClickListener" />
<import type="com.bonnti.misc.NavigationClickListener" />
</data>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@drawable/btn_red_gradient"
android:title="@{controller.title}"
app:showBackButton="@{controller.previous != null}"
app:itemClickListener="@{itemClickListener}"
app:navigationClickListener="@{(NavigationClickListener)controller}"
app:menu="@{menu}"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
</layout>
并且我将其包括在其他这样的布局中
<?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">
<data>
<variable
name="controller"
type="com.bonnti.screens.combthru.combthruitem.ItemCombthruController" />
<import type="com.bonnti.R" />
<import type="com.bonnti.misc.utils.TextUtils" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/toolbar_item_combthru"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include
layout="@layout/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:controller="@{controller}" />
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginTop="4dp"
android:layout_marginRight="@dimen/size_2dp"
android:clickable="true"
android:onClick='@{controller::onThreeDotsClick}'
android:padding="@dimen/size_10dp"
android:visibility='@{controller.isThreeDotsVisible}'>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="6dp"
android:src="@drawable/ic_point_first_white" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="6dp"
android:src="@drawable/ic_point"
android:tint="@color/white" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="6dp"
android:src="@drawable/ic_point"
android:tint="@color/white" />
</LinearLayout>
</RelativeLayout>
<include
android:id="@+id/list"
layout="@layout/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar_item_combthru"
android:layout_marginBottom="@dimen/size_40dp"
app:adapter="@{controller.adapter}"
app:loadMoreListener="@{controller}" />
<RelativeLayout
android:id="@+id/input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/white"
android:padding="@dimen/size_10dp"
android:visibility='@{controller.isCommentMode}'>
<ImageView
android:id="@+id/ic_im"
android:layout_width="20dp"
android:layout_height="20dp"
android:scaleType="centerInside"
app:srcCompat="@drawable/ic_combthru_comments" />
<EditText
android:id="@+id/et_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/size_10dp"
android:layout_marginRight="@dimen/size_10dp"
android:layout_toStartOf="@+id/ic_sent"
android:layout_toEndOf="@+id/ic_im"
android:background="@null"
android:hint="@string/comment"
android:textColor="@color/textColor"
android:textSize="@dimen/size_14sp" />
<ImageButton
android:id="@+id/ic_sent"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:background="@null"
android:onClick='@{controller::sentComment}'
android:scaleType="centerInside"
app:srcCompat="@drawable/ic_comb_sendcomment" />
</RelativeLayout>
</RelativeLayout>
</layout>
我的问题是,它给了我下面的错误。我已经尝试了从stackoverflow进行的所有操作(清理项目,破坏缓存/重新启动,重建项目,包括kotlin等),但问题没有解决。当我按app:controller =“ @ {controller}”时,它说“找不到声明”。任何帮助将不胜感激。提前致谢。
**** /数据绑定错误**** msg:在com.bonnti.databinding.ToolbarBinding上找不到参数类型为com.bonnti.screens.combthru.combthruitem.ItemCombthruController的属性“ app:controller”的设置器。文件:D:\ bonnti-android-gitlab \ app \ src \ main \ res \ layout \ layout_item_combthru.xml
使用bind
命名空间绑定变量。然后您的根目录布局应类似于
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bind="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
并且包括一个应该是
<include
layout="@layout/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
bind:controller="@{controller}" />