这几天一直在为这个问题所烦恼,这两个控件都自带滑动效果,而且当scrollview包裹list view时,如果设置成自适应的高度,则只会显示一行,这是因为包裹时,listview无法精确的计算出高度,如果在布局中设置固定高度,则可以短暂解决这个问题,但却不是十分理想的做法,因为list view中的数据一般是不确定的,所以这样很有可能就超过了给定的高度,导致数据 显示不全,这其中我自己也试过很多方法,最坑的是我自定义了一个类继承scrollview,来处理滑动冲突,哎,说多了都是泪,最后还是采用这种方法最为喜欢,那就是自定义list view,重写onMeasure这个方法,看代码吧。
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); }
// listview 中点击的position是从0开始 而PullToRefreshListView点击是从1开始