【问题标题】:Jumpy ListView if scrolling up如果向上滚动,ListView 会跳跃
【发布时间】:2015-05-21 19:14:25
【问题描述】:

我认为我不会是唯一一个遇到这个问题的人,尽管我在 SO 上找不到任何解决方案:(

我的问题:

我有一个ListView,其中填充了由 ImageLoader 在后台加载的图像。 如果我向下滚动,一切都很安静。调用getView方法,返回一个新的View,挂在最后一个View下面。

如果我向上滚动,getView 方法也会被调用,正如预期的那样。但是随后创建的View 将我的ListList 向下推。

我没有向我的Adapter 添加任何项目,因此getCount() 将始终返回相同的大小。

我尝试了什么:

如果我向下滚动,并且图像被加载到ImageView 中,我会将这个ImageView 的高度保存在该图像的相应Adapter 数据中。如果我向上滚动,并设置了 Adapter 数据的高度,我在 getView 方法中设置了 ImageView 的高度。见以下代码:

public View getView(final int position, View convertView, ViewGroup parent) {
  View vi=convertView;
    final ViewHolder holder;
    final Image img = data.get(position); // data always same size

    if(convertView==null){
        vi = inflater.inflate(R.layout.item_new_posts, null);
        holder = new ViewHolder();

        // ....

        vi.setTag(holder);

    } else {
        holder = (ViewHolder) vi.getTag();
    }
    //**Try to set the right size of the ImageView before the parent view is created**
    if(img.getHeight() != 0 && img.getWidth() != 0){
        holder.image.getLayoutParams().height = img.getHeight();
        holder.image.getLayoutParams().width = img.getWidth();
        holder.image.requestLayout();
    }

    // ....

    //**Load Image asynchronously**
    imageLoader.DisplayImage(url, holder.image);
  return vi;
} 

但是这种方法没有效果..如果我向上滚动它仍然会跳转。

有什么想法吗?

谢谢:)

【问题讨论】:

    标签: android listview android-listview scroll


    【解决方案1】:

    在实际图片加载时尝试使用占位符图片。

    或者

    在布局中设置imageview在dp中的宽高

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      相关资源
      最近更新 更多