0
favアイコンのビューがあるリサイクルビューアアダプタがあります。 1つのfavアイコンを選択すると、スクロール時に複数のアイコンが選択されました。Recyclerview multiselectビューの問題
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Seema Gupta"
android:textSize="16sp"
android:textStyle="bold"
android:textColor="@color/black"/>
<ImageView
android:id="@+id/iv_favourite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/favourite_icon"
android:layout_alignParentRight="true"
android:padding="10dp"
android:layout_marginRight="0dp"/>
アダプタクラス: -
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_maid_list_row_view, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
if (maidLists.get(position).isFav()){
holder.iv_favourite.getDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
holder.iv_favourite.setAlpha(0.7f);
}else {
holder.iv_favourite.getDrawable().setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN);
holder.iv_favourite.setAlpha(0.7f);
}
holder.iv_favourite.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (maidLists.get(position).isFav()){
holder.iv_favourite.getDrawable().setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN);
holder.iv_favourite.setAlpha(0.7f);
maidLists.get(position).setFav(false);
}else {
holder.iv_favourite.getDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
holder.iv_favourite.setAlpha(0.7f);
maidLists.get(position).setFav(true);
}
}
});
Modelクラス: - あなたのonClick方法で
public boolean isFav() {
return isFav;
}
public void setFav(boolean fav) {
isFav = fav;
}
Fを削除inalからbindViewHolder引数の位置、タグからの位置を取得 –
これを試しましたか?https://stackoverflow.com/a/39245561/4665938 –
私はマルチセレクションリサイクラービューで同じ種類の問題を抱えていました。私は、**。setIsRecyclable(false); **を私のViewHolderメソッドに追加し、私の問題を解決しました。試してみてください –