gpt4 book ai didi

android - Samsung Galaxy S2 2.3.5+ 不调用 overScrollBy()

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:53:32 25 4
gpt4 key购买 nike

似乎三星禁用了他们的过度滚动(可能是由于 Apple 诉讼)。

我有一个 View 的实现,它扩展了 ScrollView 并覆盖了

    protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY,int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)
{
...
return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, 0, metrics.widthPixels,isTouchEvent);
}

在所有其他设备上(当然是 Gingerbread 和更高版本),overScrollBy 在滚动条到达终点时被调用,用户实际上可以过度 ScrollView 。

在 Android 2.3.5+ 上,三星已经实现了某种机制来完全禁用过度滚动(不仅是他们的过度滚动实现,还有 Android 的实现),并且每次用户尝试过度滚动时,都会打印以下 LogCat 事件:

02-13 16:02:34.230: D/BounceScrollRunnableDefault(15783): run(), TimeFraction=0.5225, mBounceExtent=7.273352

有什么方法可以解锁三星在那里所做的事情吗?还是另一种创建过度滚动的方法?

最佳答案

我刚遇到同样的问题,最后想出了以下自定义过度滚动检测:

    listView.setOnTouchListener(new OnTouchListener() {

private static final float OVERSCROLL_THRESHOLD_IN_PIXELS = 70;

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 - Samsung Galaxy S2 2.3.5+ 不调用 overScrollBy(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9261911/

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