android - 快速滚动 ListView 时项目消失

标签 android listview android-custom-view baseadapter

我创建了一个扩展 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/

相关文章:

android - Media Player 流 url,然后播放下一个 url

android - 事件监听器中的内存泄漏

android - 如何在 Android 中居中对齐 ActionBar 标题?

android - CustomView 扩展 RelativeLayout

android - @layout 引用的自定义 xml 属性

Android 模拟器在 Windows 7 上挂起,没有任何错误消息

android - 在android中加载数据需要很长时间时出现黑屏

android - List<Class> 上的空指针异常

android - 自定义按钮不适用于 OnTouchListener

android - Fragment 中的 ListView 未显示在 MainActivity 中