Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Recyclerview中,图像在滚动时放错位置_Android_Android Layout_Android Studio_Android Recyclerview - Fatal编程技术网

Android 在Recyclerview中,图像在滚动时放错位置

Android 在Recyclerview中,图像在滚动时放错位置,android,android-layout,android-studio,android-recyclerview,Android,Android Layout,Android Studio,Android Recyclerview,我使用的customview包含ImageView和两个TextView,这是我的RecyclerView。适配器我使用毕加索库来显示图像 public void onBindViewHolder(final ViewHolder holder, final int position) { Picasso.with(context) .load(url) .placeholder(R.drawable.placeholder)

我使用的customview包含ImageView和两个TextView,这是我的RecyclerView。适配器我使用毕加索库来显示图像

 public void onBindViewHolder(final ViewHolder holder, final int position) {
         Picasso.with(context)
            .load(url)
            .placeholder(R.drawable.placeholder)   
            .error(R.drawable.error)   
            .resize(100, 100)                       
            .into(ivProfile);

    holder.tvFirstName.setText(object.getFirstName();
    holder.tvSecondName.setText(object.getSecondName);}


     public int getItemCount()
      {
        return profileListDetails.size();
      }

class ViewHolder extends RecyclerView.ViewHolder {

    public TextView tvFirstName ;
    public TextView tvSecondName ;
    public ImageView ivProfile;

        public ViewHolder(View itemView) {
        super(itemView);
        ivProfile= (ImageView) itemView.findViewById(R.id.ivProfile);
        tvFirstName = (TextView) itemView.findViewById(R.id.tvFirstName );
        tvSecondName = (TextView) itemView.findViewById(R.id.tvSecondName );

    }
}
还有我的回收视图-

      <android.support.v7.widget.RecyclerView               
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:scrollbarAlwaysDrawVerticalTrack="true"
      android:scrollbars="vertical>

</android.support.v7.widget.RecyclerView>
谢谢大家的回复。。。
我终于解决了这个问题

public void onBindViewHolder(final ViewHolder holder, final int position) {
     Picasso.with(context)
        .load(url)
        .placeholder(R.drawable.placeholder)   
        .error(R.drawable.error)   
        .resize(100, 100)                       
        .into(ivProfile);
我在上面的代码中做了一些小改动。。。 在上面的代码中,ivProfile声明为全局,因此无法与ViewHolder引用链接。所以我改变了它如下

public void onBindViewHolder(final ViewHolder holder, final int position) {
     Picasso.with(context)
        .load(url)
        .placeholder(R.drawable.placeholder)   
        .error(R.drawable.error)   
        .resize(100, 100)                       
        .into(holder.ivProfile);

你所说的“改变”是什么意思,他们的立场正在改变?是否显示不同的图像?或者它们在闪烁?图像放错位置意味着位置1图像转到位置3或位置4图像显示到位置6,就像任何组合一样…位置不断变化,但当单击特定位置查看详细信息时,会显示右侧图像。在您的
.into(ivProfile)
呼叫中,ivProfile是成员变量还是键入错误?如果不是键入错误,请将其更改为
。改为(holder.ivProfile)
public void onBindViewHolder(final ViewHolder holder, final int position) {
     Picasso.with(context)
        .load(url)
        .placeholder(R.drawable.placeholder)   
        .error(R.drawable.error)   
        .resize(100, 100)                       
        .into(holder.ivProfile);