【问题标题】:grid view scrolling issue?网格视图滚动问题?
【发布时间】:2014-10-13 19:08:08
【问题描述】:

我制作了一个由文本组成的gridview,在它下面是一个图像,一切正常,但问题是当我滚动时,图像会重复,所以关于如何解决这个问题的任何提示

这是我的适配器:

public class CustomGridAdapter extends BaseAdapter {
private Context context;
private final String[] mobileValues;

public CustomGridAdapter(Context context, String[] mobileValues) {
    this.context = context;
    this.mobileValues = mobileValues;
}

public View getView(int position, View convertView, ViewGroup parent) {

    LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View gridView;

    if (convertView == null) {

        gridView = new View(context);

        // get layout from mobile.xml
        gridView = inflater.inflate(R.layout.heartless_gridview_design, null);

        // set value into textview
        TextView textView = (TextView) gridView
                .findViewById(R.id.heartless_name);
        textView.setText(mobileValues[position]);

        // set image based on selected text
        ImageView imageView = (ImageView) gridView
                .findViewById(R.id.heartless_image);

        String mobile = mobileValues[position];


        if (mobile.equals("Shadow")) {
            imageView.setImageResource(R.drawable.shadow);
        } else if (mobile.equals("Soldier")) {
            imageView.setImageResource(R.drawable.soldier);
        } else if (mobile.equals("Large Body")) {
            imageView.setImageResource(R.drawable.large_body);
        } else if (mobile.equals("Silver Rock")) {
            imageView.setImageResource(R.drawable.silver_rock);
        } else if (mobile.equals("Emerald Blues")) {
            imageView.setImageResource(R.drawable.emerald_blues);
        } else {
        }

    } else {
        gridView = (View) convertView;
    }

    return gridView;
}

@Override
public int getCount() {
    return mobileValues.length;
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}
}

如果您知道如何解决此问题,请告诉我如何解决。

【问题讨论】:

    标签: java android eclipse gridview


    【解决方案1】:

    到目前为止,我了解到您应该使用 viewholder 模式和 每次调用 getView 方法时检查 viewholder 是否为 null 初始化它,否则什么都不做,只返回视图..

    http://developer.android.com/training/improving-layouts/smooth-scrolling.html#ViewHolder

    这里有很好的例子 - http://java.dzone.com/articles/android-listview-optimizations

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多