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

时间:2014-05-21 21:38:03

标签: android horizontalscrollview

如何在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();
    }

1 个答案:

答案 0 :(得分:7)

在文档中,请致电setOverScrollMode

现货AOSP 在姜饼之前没有过度滚动效应,所以如何禁用它们的问题毫无意义。一些制造商增加了他们自己的过度滚动效果,例如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%或更少用户仍会看到反弹效果。如果你真的,绝对必须禁用所有过度滚动效果{@ 3}}或使用反射来处理TouchWiz,特别类似于use an onScrollListener to prevent scrolling past the beginning or endthis example