Listview多次重复调用getview的问题

原因:主要是由于Listview的宽高不确定, 无法确定取多少View来填充ListView,也就是无法确定运行多少次getView()方法。所以设计布局的时候尽量把listview固定长宽来提高性能。遇到复杂的布局时,可以选择动态测量listview 的高度。


listView_explorer_content.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

LayoutParams lp;

lp = listView_explorer_content.getLayoutParams();

lp.width = listView_explorer_content.getWidth();

lp.height = listView_explorer_content.getHeight();


if (listView_explorer_content.getHeight() > 0) {

listView_explorer_content.setLayoutParams(lp);


}


listView_explorer_content.getViewTreeObserver().removeOnGlobalLayoutListener(this);//移除OnGlobalLayoutListener,不然会重复调用。

}


}

});


你可能感兴趣的:(Listview多次重复调用getview的问题)