我目前正在为我的项目实施RecyclerView
。在RecyclerView
上设置项目并滚动时,我失去了位置。
我使用“某些”和“其他”条件来单击并更改文本的颜色,但是当我不滚动RecyclerView
项时,它会更改。
请给我建议正确的方法来处理这种情况。
adapter.setOnItemClickListner(new LoadVehicleTypeAdapter.setOnitemclick() {
@Override
public void ImageClick(int position, String Name,String Description,int id) {
LinearLayout linearLayout = null;
CustomTextView customTextView = null;
try {
for (int i = 0; i < messages.size(); i++) {
linearLayout = (LinearLayout) rvVehicleTypes.getChildAt(i).findViewById(R.id.root1);
customTextView = (CustomTextView) rvVehicleTypes.getChildAt(i).findViewById(R.id.frag_cartypes_inflated_name);
if (i==position) {
linearLayout.setBackgroundColor(Color.parseColor("#999999"));
customTextView.setTextColor(Color.parseColor("#FFFFFF"));
} else {
linearLayout.setBackgroundColor(Color.parseColor("#f3f3f3"));
customTextView.setTextColor(Color.parseColor("#2196F3"));
}
}
//Toast.makeText(getActivity(),Name, Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
}
}
});
答案 0 :(得分:0)
似乎您是Android开发领域的新手,基于这个假设,我将带您逐步完成ListView到RecyclerView的旅程。
ListView,我们习惯于遵循ViewHolder模式来管理滚动列表视图时回收的项目。
现在,RecyclerView具有内置的功能,而不是内置的,但是您必须强制实现它,我说的是onCreateViewHolder
和onBindViewHolder
。
因此,现在让我们进一步了解它是如何工作的,一旦您开始向下滚动列表,膨胀的项目视图就会开始被回收,而先前膨胀的ViewHolder(实际上是在onCreateViewHolder中创建的)将被重用。
现在要解决此问题,您必须记住这个位置,对于我们大多数人过去使用SparseBooleanArray
答案 1 :(得分:0)