У меня проблема в том, что у меня есть comment_item.xml
с комментарием пользователя , именем пользователя, лайком и неприязнью и комментарием ImageView
, а также TextView
для количества комментариев , количество лайков и количество антипатий . Проблема в том, что в сообщении есть, например, 13 комментариев, и мне нравится или не нравится один из комментариев, нажав на ImageView
, остальные «моргнут». Под этим я подразумеваю, что в своей Деятельности я сделал так, что когда вы нажимаете, как большой палец, ImageView
превращается из серого в красный, а если вы нажимаете не нравится ImageView
, он превращается из серого в черный, а затем вы получаете обновленный количество лайков или антипатий рядом. Но когда я нажимаю ImageView
за "нравится" или "не нравится", все другие комментарии, как "нравится" или "не нравится" ImageViews
также поворачивают другой цвет, затем возвращаются к цвету, в котором они были изначально ... Это как "мерцание", скажем так, так вы, ребята, понимаете, что я имею в виду под происходящим действием.
Как я могу предотвратить это. Любой другой комментарий нравится и не нравится ImageView
не должен реагировать, если мне нравится или не нравится другой комментарий ...
Я думаю, что проблема может быть в моем файле xml, но я не 100%. Загрузил картинку, чтобы вы могли видеть пользовательский интерфейс. Теперь, когда я нажимаю на кнопку «Нравится» или «Не нравится» на всех других лайках и антипатиях, «моргание» меняется на противоположный цвет, в котором они находятся, а затем переключается назад… как мигание. Мне нужно, чтобы этого не случилось. Они не должны реагировать, если мне нравится или не нравится другое сообщение ...

comment_item. xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/image_profile"
android:layout_width="40dp"
android:layout_height="40dp" />
<LinearLayout
android:id="@+id/linear_layout_one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginBottom="10dp"
android:layout_toEndOf="@+id/image_profile"
android:orientation="vertical">
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorPrimaryAqua50"
android:textStyle="bold" />
<TextView
android:id="@+id/comment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="5" />
</LinearLayout>
<LinearLayout
android:id="@+id/linear_layout_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linear_layout_one"
android:layout_marginBottom="15dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/icon_thumb_up_grey"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_marginStart="120dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="15dp"
android:src="@drawable/ic_thumb_up_grey" />
<ImageView
android:id="@+id/icon_thumb_up_red"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_marginStart="120dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="15dp"
android:src="@drawable/ic_thumb_up_red"
android:visibility="gone" />
<TextView
android:id="@+id/comment_likes_number"
android:layout_width="16sp"
android:layout_height="16sp"
android:layout_marginTop="5dp"
android:layout_marginEnd="15dp" />
<ImageView
android:id="@+id/icon_thumb_down_grey"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="15dp"
android:src="@drawable/ic_thumb_down_grey" />
<ImageView
android:id="@+id/icon_thumb_down_black"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="15dp"
android:src="@drawable/ic_thumb_down_black"
android:visibility="gone" />
<TextView
android:id="@+id/comment_dislikes_number"
android:layout_width="16sp"
android:layout_height="16sp"
android:layout_marginTop="5dp"
android:layout_marginEnd="15dp" />
<ImageView
android:id="@+id/icon_comment_grey"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="15dp"
android:src="@drawable/ic_comment_grey" />
<ImageView
android:id="@+id/icon_comment_blue"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="15dp"
android:src="@drawable/ic_comment_blue"
android:visibility="gone" />
<TextView
android:id="@+id/comment_response_number"
android:layout_width="16sp"
android:layout_height="16sp"
android:layout_marginTop="5dp" />
</LinearLayout>
</RelativeLayout>
CommentAdapter
holder.commentLike.setOnClickListener(v -> {
if (holder.commentLike.getTag().equals("like")) {
FirebaseDatabase.getInstance().getReference().child("Comment Liked or Disliked").child(comment.getCommentid()).child("Likes").child(mFirebaseUser.getUid()).setValue(true);
} else {
FirebaseDatabase.getInstance().getReference().child("Comment Liked or Disliked").child(comment.getCommentid()).child("Likes").child(mFirebaseUser.getUid()).removeValue();
}
notifyDataSetChanged();
});
holder.commentDislike.setOnClickListener(v -> {
if (holder.commentDislike.getTag().equals("dislike")) {
FirebaseDatabase.getInstance().getReference().child("Comment Liked or Disliked").child(comment.getCommentid()).child("Dislikes").child(mFirebaseUser.getUid()).setValue(true);
Toast.makeText(mContext, "Don't be mean", Toast.LENGTH_SHORT).show();
} else {
FirebaseDatabase.getInstance().getReference().child("Comment Liked or Disliked").child(comment.getCommentid()).child("Dislikes").child(mFirebaseUser.getUid()).removeValue();
}
notifyDataSetChanged();
});
private void commentLike(final String commentid, final ImageView imageView) {
if (commentid != null) {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Comment Liked or Disliked").child(commentid).child("Likes");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (mFirebaseUser != null)
if (dataSnapshot.child(mFirebaseUser.getUid()).exists()) {
imageView.setImageResource(R.drawable.ic_thumb_up_red);
imageView.setTag("liked");
} else {
imageView.setImageResource(R.drawable.ic_thumb_up_grey);
imageView.setTag("like");
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
private void commentDislike(final String commentid, final ImageView imageView) {
if (commentid != null) {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Comment Liked or Disliked").child(commentid).child("Dislikes");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (mFirebaseUser != null)
if (dataSnapshot.child(mFirebaseUser.getUid()).exists()) {
imageView.setImageResource(R.drawable.ic_thumb_down_black);
imageView.setTag("disliked");
} else {
imageView.setImageResource(R.drawable.ic_thumb_down_grey);
imageView.setTag("dislike");
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
private void commentLikesNumber(TextView commentLikesNumber, String commentid) {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Comment Liked or Disliked").child(commentid).child("Likes");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
commentLikesNumber.setText(dataSnapshot.getChildrenCount() + "");
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void commentDislikesNumber(TextView commentDislikesNumber, String commentid) {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Comment Liked or Disliked").child(commentid).child("Dislikes");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
commentDislikesNumber.setText(dataSnapshot.getChildrenCount() + "");
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}