如何解决在其布局内绑定自己的数据绑定对象
是否可以在自己内部绑定布局的绑定对象? (请参见variable
标签内的第三个data
标签)
<?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>
<import type="com.example.so.VoteStatus" />
<variable
name="comment"
type="com.example.so.model.Comment" />
<variable
name="clickListener"
type="com.example.so.ui.image_details.CommentListAdapter.ClickListener" />
<variable
name="binding"
type="com.example.so.databinding.CommentBinding" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
<TextView
android:id="@+id/comment_author"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{comment.author}"
android:textColor="@color/authorColor"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="brianglass10" />
<ImageView
android:id="@+id/comment_upvote_ic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:foreground="?selectableItemBackground"
android:onClick="@{() -> clickListener.onClickUpvote(binding)}"
android:scaleX=".75"
android:scaleY=".75"
app:layout_constraintBottom_toBottomOf="@id/comment_author"
app:layout_constraintEnd_toStartOf="@+id/comment_upvote_count"
app:layout_constraintTop_toTopOf="@id/comment_author"
app:upvoteSrc="@{comment.isUp}"
tools:src="@drawable/ic_baseline_arrow_upward_24" />
<TextView
android:id="@+id/comment_upvote_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{String.valueOf(comment.ups)}"
app:layout_constraintBottom_toBottomOf="@id/comment_author"
app:layout_constraintEnd_toStartOf="@id/comment_downvote_ic"
app:layout_constraintTop_toTopOf="@id/comment_author"
tools:text="9" />
<ImageView
android:id="@+id/comment_downvote_ic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:foreground="?selectableItemBackground"
android:onClick="@{() -> clickListener.onClickDownvote(binding)}"
android:scaleX=".75"
android:scaleY=".75"
app:downvoteSrc="@{comment.isDown}"
app:layout_constraintBottom_toBottomOf="@id/comment_author"
app:layout_constraintEnd_toStartOf="@+id/comment_downvote_count"
app:layout_constraintTop_toTopOf="@id/comment_author"
tools:src="@drawable/ic_baseline_arrow_downward_24" />
<TextView
android:id="@+id/comment_downvote_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{String.valueOf(comment.downs)}"
app:layout_constraintBottom_toBottomOf="@id/comment_author"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/comment_author"
tools:text="2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@{comment.comment}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/comment_author"
tools:text="What are they doing with the ballots they collect?" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
为什么?
我正在使用RecyclerView
来显示评论列表(如上所示的布局),您可以对其进行向上或向下投票。
我试图在onClick
函数(@+id/comment_upvote_ic
和@+id/comment_downvote_ic
)中传递布局的绑定对象,以便可以访问和编辑附近的视图。
示例::当我点击“ upvote”按钮时,我想将投票箭头更改为绿色,在“ upvote”计数中添加一个,但是我还需要重置“ downvote”箭头的颜色和计数。
我已经找到了解决方法,但是我想知道是否有可能和/或建议这样做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。