我创建了一个扩展 BaseAdapter 的适配器。 以下是类(class)内容:
class LocalAdapter extends BaseAdapter{
private Context context;
public LocalAdapter(Context ctx){
context=ctx;
}
@Override
public int getCount() {
return messages.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if(view==null){
LayoutInflater li = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = li.inflate(R.layout.chat_list_item,viewGroup,false);
}
TextView rightView = (TextView)view.findViewById(R.id.rightAligned);
TextView leftView = (TextView)view.findViewById(R.id.leftAligned);
if(messages.get(i).getFrom().equals(UserInfo.getMobileNumber())){
rightView.setText(messages.get(i).getMessage());
leftView.setVisibility(View.GONE);
}
else{
leftView.setText(messages.get(i).getMessage());
rightView.setVisibility(View.GONE);
}
return view;
}
}
适配器可以从主类访问ArrayList。它有大约30个项目。现在,当我加载列表时,所有项目都已加载,但是当滚动列表时,某些项目会在滚动时消失。
请提供解决方案。
最佳答案
您可能没有调用 setVisibility(View.VISIBLE) 只是隐藏 View ,请按以下方式修复:
if (messages.get(i).getFrom().equals(UserInfo.getMobileNumber())){
rightView.setText(messages.get(i).getMessage());
leftView.setVisibility(View.GONE);
rightView.setVisibility(View.VISIBLE);
} else {
leftView.setText(messages.get(i).getMessage());
rightView.setVisibility(View.GONE);
leftView.setVisibility(View.VISIBLE);
}
关于android - 快速滚动 ListView 时项目消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25460579/