gpt4 book ai didi

android - 如何检测用户何时滚动到 ListView 的顶部,如果是这样,如何通过 ListView 传递触摸?

转载 作者:行者123 更新时间:2023-11-29 00:20:16 25 4
gpt4 key购买 nike

在 Android 中,您如何检测用户何时已经滚动到 listView 的顶部并且在屏幕上向下拖动,即使他已经到达 ListView 的顶部,然后传递这个通过 ListView 触摸到父级 ViewGroup?

最佳答案

以下代码段将帮助您检测 ListView 的顶部过度滚动以及底部过度滚动,

listView.setOnTouchListener(new OnTouchListener() {

private static final float OVERSCROLL_THRESHOLD_IN_PIXELS = 100;

private float downY;

@Override
public boolean onTouch(View v, MotionEvent event) {
int firstVisibleItem = listView.getFirstVisiblePosition();
int totalItemCount = listView.getCount();
int visibleItemCount = listView.getChildCount();
boolean onTop = firstVisibleItem == 0 && listView.getChildAt(0) != null && listView.getChildAt(0).getTop() == 0;
boolean onBottom = firstVisibleItem + visibleItemCount == totalItemCount && listView.getChildAt(visibleItemCount-1).getBottom() == listView.getHeight();

if(onTop || onBottom) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
downY = event.getY();
break;
case MotionEvent.ACTION_MOVE:
float deltaY = event.getY() - downY;
if(onTop && deltaY > OVERSCROLL_THRESHOLD_IN_PIXELS)
{

// Top overscroll
}
if(onBottom && -deltaY > OVERSCROLL_THRESHOLD_IN_PIXELS) {
// Bottom overscroll
}
break;
}
}

return false;
}
});

关于android - 如何检测用户何时滚动到 ListView 的顶部,如果是这样,如何通过 ListView 传递触摸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23651900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com