listview 开发时最需要注意的是复用的问题。
1.复用时,每个item共有的行为需要抽象出来。
2.各个item的状态要保存的话,需要自定义数据结构保存。
因为复用,getview 中view listener 也会被复用,多次调用,要保证最后的view的状态是你想要的。
set listrener的方法:
class CusOnClickListener implements View.OnClickListener {
private ListviewHolder holder;
public CusOnClickListener(ListviewHolder holder) {
this.holder = holder;
}
@Override
public void onClick(View view) {
//========================================
Log.d(TAG, "onClick:");
}
private ListviewHolder holder;
public CusOnClickListener(ListviewHolder holder) {
this.holder = holder;
}
@Override
public void onClick(View view) {
//========================================
Log.d(TAG, "onClick:");
}
}
view.setOnClickListener(new CusOnClickListener(holder));
还有关于复用,listview的getbottom, LISTVIEW.FOCUSDOWN等都会受到影响,需要多次调用,或者设定不同的延迟。
设定延迟的方法:
new Handler().postDelayed(new Runnable(){
public void run() {
list.setSelection(list.getBottom());
}
public void run() {
list.setSelection(list.getBottom());
}
}, 100);
本文主要讲解了在Android开发中ListView的复用技巧,包括如何处理item的共有行为、状态保存及自定义数据结构。此外还介绍了点击监听器的正确设置方式,以及因复用带来的getBottom和FOCUSDOWN等问题的解决办法。
1260

被折叠的 条评论
为什么被折叠?



