listview baseadpater getview 方法何时调用
2013-03-29 22:29
176 查看
摘自网上
页面刷新。更新数据,notifydatabasechange()都会调用getview () 方法
1、
getView执行的次数和你的getCount没有直接的关系 ,getCount和你listView里面的条目数量(行数量)有关系 ,getView方法执行次数取决于你屏幕上显示几个条目,比如你有100行 ,但是你一屏只能显示5行,那么启动程序的时候 系统调用5次getView方法,当你把listView往下拉的时候会显示出其他未显示的行,这样系统就会调用getView方法,每显示一个新的行就调用一次getView,所以你要是不停的上下滑动listVew那getView理论上是可以调用任意次数的
2、
在Android中,我们常常会遇到这种情况:在ListView中显示图片,而图片的显示我们一般是放在与ListView绑定了的适配器BaseAdapter方法getView中,如下面所示:
class
MyAdapter extends BaseAdapter{
private
Context mContext;
private
int mSize;
public
MyAdapter(Context mContext, int mSize){
this.mContext
= context;
this.mSize
= mSize;
}
public
int getCount() {
//
TODO Auto-generated method stub
return mSize;
}
public
Object getItem(int arg0) {
` //
TODO Auto-generated method stub
return
arg0;
}
public
long getItemId(int position) {
//
TODO Auto-generated method stub
return
position;
}
public
View getView(int position, View convertView,
ViewGroup parent)
{
//
TODO Auto-generated method stub
system.out.println("getView
was called");
//显示图片
}
}
在上面的例子中,一个Activity刚生成,假如ListView有N多个子项,使得界面拥有了滚动条,那么控制台首先会打印N次“getView
was called”。
当我们试图用鼠标拖动滚动条时,如果ListView的布局是:
android:layout_width="fill_parent"
android:layout_height="wrap_content"
那么控制台会继续打印“getView
was called”,表明getView方法继续被执行。
如果ListView的布局是:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
那么控制台不再打印“getView
was called”,即不再调用getView。
因此,我们在使用ListView时,尽量想办法固定ListView的高度,增加程序运行效率。
页面刷新。更新数据,notifydatabasechange()都会调用getview () 方法
1、
getView执行的次数和你的getCount没有直接的关系 ,getCount和你listView里面的条目数量(行数量)有关系 ,getView方法执行次数取决于你屏幕上显示几个条目,比如你有100行 ,但是你一屏只能显示5行,那么启动程序的时候 系统调用5次getView方法,当你把listView往下拉的时候会显示出其他未显示的行,这样系统就会调用getView方法,每显示一个新的行就调用一次getView,所以你要是不停的上下滑动listVew那getView理论上是可以调用任意次数的
2、
在Android中,我们常常会遇到这种情况:在ListView中显示图片,而图片的显示我们一般是放在与ListView绑定了的适配器BaseAdapter方法getView中,如下面所示:
class
MyAdapter extends BaseAdapter{
private
Context mContext;
private
int mSize;
public
MyAdapter(Context mContext, int mSize){
this.mContext
= context;
this.mSize
= mSize;
}
public
int getCount() {
//
TODO Auto-generated method stub
return mSize;
}
public
Object getItem(int arg0) {
` //
TODO Auto-generated method stub
return
arg0;
}
public
long getItemId(int position) {
//
TODO Auto-generated method stub
return
position;
}
public
View getView(int position, View convertView,
ViewGroup parent)
{
//
TODO Auto-generated method stub
system.out.println("getView
was called");
//显示图片
}
}
在上面的例子中,一个Activity刚生成,假如ListView有N多个子项,使得界面拥有了滚动条,那么控制台首先会打印N次“getView
was called”。
当我们试图用鼠标拖动滚动条时,如果ListView的布局是:
android:layout_width="fill_parent"
android:layout_height="wrap_content"
那么控制台会继续打印“getView
was called”,表明getView方法继续被执行。
如果ListView的布局是:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
那么控制台不再打印“getView
was called”,即不再调用getView。
因此,我们在使用ListView时,尽量想办法固定ListView的高度,增加程序运行效率。
相关文章推荐
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- Meter 上传apk文件后,何时,如何调用服务器的解析方法 与结果处理
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews跟drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- 在适配器中,何时调用getView()方法?
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用
- UIView的layoutSubviews和drawRect方法何时调用