【发布时间】:2018-03-23 10:17:21
【问题描述】:
我创建了一个水平的recyclerview 列表。下面是我附上的图片。 问题是每次用户从关闭状态单击该行到打开状态以及从打开状态到关闭状态时,我都必须更改灯泡状态。 我如何实现这个逻辑?请帮我找出解决方案。 我想根据用户点击来改变灯光颜色,如果他点击了,那么它应该改变该行的颜色,反之亦然
public void onClick(View view, int position) {
//toast("clicked" + position );
if (!lightClicked){
ImageView lightPopUp = view.findViewById(R.id.row_light_thumbnail);
DrawableCompat.setTint(lightPopUp.getDrawable().mutate(), ContextCompat.getColor(getContext(), R.color.white));
//toast("light on");
lightClicked = true;
}else {
ImageView lightPopUp = view.findViewById(R.id.row_light_thumbnail);
//toast("light off");
DrawableCompat.setTint(lightPopUp.getDrawable().mutate(), ContextCompat.getColor(getContext(), R.color.colorAccent));
lightClicked = false;
}
//View view1 = mLayoutManager.findViewByPosition(position);
}
【问题讨论】:
-
可以创建监听器(onclick),根据状态改变图片
-
如果所有元素都处于关闭状态,如果单击其他元素会进入打开状态,反之亦然,即用户再次单击该元素会返回原始状态或关闭状态。
-
什么简单的逻辑?
-
只检查 if 条件中的状态 if on then on_image 如果 off 然后 off_image 在 recyclerview 适配器 onbind 方法中检查状态
-
使用 notifyDataSetChanged(); onclick里面的方法。
标签: android android-layout android-studio android-fragments android-recyclerview