我有一个包含Listview的ScrollView,但是即使我滚动列表视图,onscroll()方法中的三个参数也不会改变,它们与初始状态保持一致。
这是我的布局
此外,我处理滚动事件的代码,注意 contentlist 是listview而不是scrollview。
然而正如你在logcat中看到的那样,即使我滚动并且可见项目数应该只有两个,也没有任何变化
我想知道是否因为listview的高度导致了这个问题?
由于
答案 0 :(得分:1)
将ListView
置于ScrollView
内总会导致问题..为什么不在ListView
中使用SwipeRefreshLayout
并使用addHeaderView()
来在它上面显示你的LinearLayout
?
答案 1 :(得分:1)
首先,我无法理解你为什么在ScrollView中保留了ListView。
您不应该将ListView放在ScrollView中,因为ListView类实现了自己的滚动,它只是不接收手势,因为它们都由父ScrollView处理。
但是如果您仍然需要ScrollView中的ListView,您可以向ListView添加触摸侦听器并禁用父ScrollView的触摸事件。
contentList.setOnTouchListener(new OnTouchListener() {
// Setting on Touch Listener for handling the touch inside ScrollView
@Override
public boolean onTouch(View v, MotionEvent event) {
// Disallow the touch request for parent scroll on touch of child view
v.getParent().requestDisallowInterceptTouchEvent(true);
return false;
}
});
希望它有所帮助.. :)