gpt4 book ai didi

Android - 在 Horizo​​ntalScrollView 上禁用过度滚动

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:22 24 4
gpt4 key购买 nike

如何在 Android 2.2 下禁用 Horizo​​ntalScrollView 的过度滚动?

编辑

我为此使用反射:

    HorizontalScrollView hh = (HorizontalScrollView) findViewById(R.id.chartHorizontalView);
viewCls = hh.getClass();
try {
Method m = viewCls.getMethod("setOverScrollMode",
new Class[] { int.class });
int OVER_SCROLL_NEVER = (Integer) viewCls.getField(
"OVER_SCROLL_NEVER").get(hh);
m.invoke(hh, OVER_SCROLL_NEVER);
} catch (Exception e) {
e.printStackTrace();
}

最佳答案

它在文档中是正确的,调用setOverScrollMode

在现有的 AOSP 中,在 Gingerbread 之前没有过度滚动效果,所以如何禁用它们的问题在某种程度上是没有意义的。一些制造商添加了他们自己的滚动效果,例如 TouchWiz 弹跳效果。显然,由于效果不是 SDK 的一部分,因此 SDK 中没有禁用它们的方法!

在撰写本文时,Froyo 及以下的产品约占 2%。在我看来,明智的做法是定位 sdk 版本 >= 9 并使用类似

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
horizontalScrollView.setOverScrollMode(View.OVER_SCROLL_NEVER);
}

这样一来,大多数用户将不会看到发光的过度滚动效果,但那些使用 TouchWiz 运行 Froyo 的 2% 或更少的用户仍然会看到弹跳效果。如果您真的,绝对必须禁用所有过度滚动效果,您可以 use an onScrollListener to prevent scrolling past the beginning or end或者使用反射来处理 TouchWiz 特别类似于 this examplethis one

关于Android - 在 Horizo​​ntalScrollView 上禁用过度滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23794275/

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