关于Listview滚动Android

时间:2017-05-18 12:40:18

标签: android list listview

我有一个列表视图,显示项目的价格。我需要打破旧价格并根据json的“报价”值显示新价格。这就是我在getView()中尝试的方法。

 if (dataList.get(position).get("Offer").equals("0")) {
       viewHolder.view_price.setVisibility(View.GONE);
     } else {
       viewHolder.view_subprice.setPaintFlags(viewHolder.view_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG)
     }

一开始就完美无缺。但是当我滚动删除线的时候。没有罢工的文字视图似乎被打破了。

1 个答案:

答案 0 :(得分:1)

尝试删除" if"中的标记。 在android中有一个列表的东西是视图正在重复。 所以,让我们假设您在屏幕上有5个项目,总共10个项目。 如果在第一项的getView中,您设置为具有警示。在视图6中,当你滚动时,如果你不需要它被打击,如果它已被打击,那么它将保持这样,因为你没有修改它。 所以尝试类似的事情:

if (dataList.get(position).get("Offer").equals("0")) { 
   viewHolder.view_price.setVisibility(View.GONE);
  viewHolder.view_subprice.setPaintFlags(null)
 } else { 
  viewHolder.view_subprice.setPaintFlags(viewHolder.view_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG)
 viewHolder.view_price.setVisibility(View.Visible);
  }