每次我上下滚动时,Android RecyclerView显示的项目都会更改

时间:2017-08-24 13:07:14

标签: android android-recyclerview parse-server

我使用parse-server开发使用RecyclerView显示图像项的应用程序。

但问题是每次我上下滚动时,视图中显示的项目都会改变。

我想知道我的代码有什么问题。

如果您看到下面的图片,您可以发现这些项目正在改变他们的位置。

我试图让持有人图像变为空,然后再次致电持有人。但它不起作用。我想当我再次拨打该项目时,该项目的位置编号会发生变化。但我无法找到原因

enter image description here enter image description here

RecyclerParseAdapter.java

final PermissionCompat.Builder builder = new PermissionCompat.Builder(activity);

    builder.addPermissions(new String[]{
            Manifest.permission.CAMERA,
            Manifest.permission.RECORD_AUDIO
    });

    builder.addPermissionRationale(activity.getString(R.string.permission_rationale));

    builder.addRequestPermissionsCallBack(new OnRequestPermissionsCallBack() {
        @Override
        public void onGrant() {
            Log.d(TAG, "Grant");
        }

        @Override
        public void onDenied(String permission) {
            Log.e(TAG, "Denied");
        }
    });

    builder.build().request();

2 个答案:

答案 0 :(得分:0)

我确实发现了问题

我在适配器中添加了overide方法然后它可以找到。

@Override
public int getItemViewType(int position) {
    return position;
}

我不确定为什么会发生这种情况。有谁帮我了解问题的原因?

答案 1 :(得分:0)

前几天我遇到类似的问题this post。 onBindViewHolder需要知道如何在调用行时显示该行。我根据getItemViewType中的需要返回了两种不同的视图类型,在onCreateViewHolder中有条件地膨胀了视图类型,然后我可以根据需要在ViewHolder上设置数据。