【发布时间】:2018-11-28 08:00:10
【问题描述】:
在视图中添加结束约束时遇到问题
<android.support.constraint.ConstraintLayout
android:id="@+id/chatDocumentMessageContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@{chatMessage.corespondent==Corespondent.Sent? @drawable/very_rounded_corners_gray_background:@drawable/very_rounded_corners_orange_background}"
android:maxWidth="300dp"
android:minWidth="140dp"
android:onClick="@{clickListener::onClick}"
android:padding="@dimen/padding_large"
app:layout_constraintEnd_toEndOf="@{chatMessage.corespondent==Corespondent.Sent? ConstraintSet.PARENT_ID:ConstraintSet.UNSET}">
我收到了这个错误:
[kapt] 发生异常: android.databinding.tool.util.LoggedErrorException:找到数据绑定 错误。 ****/ 数据绑定错误 ****msg:找不到参数类型为 int 的属性“app:layout_constraintEnd_toEndOf”的设置器 android.support.constraint.ConstraintLayout.
尝试添加以下适配器,但仍然无法正常工作:
@BindingAdapter(" app:layout_constraintEnd_toEndOf")
fun setEndConstraint(guideline: Guideline, resource: Int) {
val params = guideline.getLayoutParams() as ConstraintLayout.LayoutParams
params.endToEnd = resource
guideline.layoutParams = params
}
【问题讨论】:
-
尝试改变这个应用:layout_constraintEnd_toEndOf="parent"
-
-
不要这样做。我不会回答您的问题,因为您尝试做的是一种不好的做法。不要那样做。
-
@ArchieG.Quiñones 为什么会这样。我想删除多余的布局。
-
代码不可测试。您的布局应该是愚蠢的,没有添加任何逻辑。您可以通过将该逻辑放在单独的类中而不是将它们本身放在布局中来轻松地做同样的事情。同样,这就是我认为您的问题不值得回答的原因。
标签: android android-constraintlayout android-databinding