【问题标题】:how to smooth my gridview scrolling in android?如何在android中平滑我的gridview滚动?
【发布时间】:2017-02-09 14:37:15
【问题描述】:

我正在通过下面的代码为 gridview 使用一个类。我怎样才能通过viewholder或其他方法平滑我的gridview滚动? 我只希望我的滚动 gridview 性能非常顺利。我使用此 gridview 来显示图像和名称,并通过单击 eacj 项目打开另一个活动以获取详细信息。

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class CustomGrid extends BaseAdapter{

private Context mContext;
private final String[] web;
private final int[] Imageid;


public CustomGrid(Context c, String[] web, int[] Imageid) {
    mContext = c;
    this.Imageid = Imageid;
    this.web = web;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
    return web.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
    return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
    return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
    View grid;
    LayoutInflater inflater = (LayoutInflater)         mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    grid = new View(mContext);
    grid = inflater.inflate(R.layout.grid_item, null);
    TextView textView = (TextView) grid.findViewById(R.id.grid_text);
    ImageView imageView = (ImageView)grid.findViewById(R.id.grid_image);
    textView.setText(web[position]);
    imageView.setImageResource(Imageid[position]);


    return grid;
}
}

【问题讨论】:

  • 使用 viewHolder 模式
  • 作为@d1vivek681065 已经说过的注释,您必须阅读stackoverflow.com/questions/11945563/…。只要确保你明白为什么它这么慢。只解决问题并不能解决真正的问题

标签: android gridview android-viewholder


【解决方案1】:

始终尝试对列表和网格使用 ViewHolder 模式,这可以提高列表和网格的性能:

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

    ViewHolder viewHolder = null;
    if(convertView==null){
        viewHolder = new ViewHolder();
        convertView = inflater.inflate(R.layout.grid_item,parent,false);

        convertView.setTag(viewHolder);
    }
    else {
        viewHolder=(ViewHolder)convertView.getTag();
    }
    viewHolder.image=(ImageView)convertView.findViewById(R.id.thumbnail);
    viewHolder.title=(TextView)convertView.findViewById(R.id.title);
    viewHolder.title.setText(Html.fromHtml(values.getPosts().get(position).getTitle()));

    imageView.setImageResource(Imageid[position]);
    return convertView;
}

private static class ViewHolder{
    public static ImageView image;
    public static TextView title;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 2011-07-22
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    相关资源
    最近更新 更多