0

HorizontalScrollView右端までスクロールしたときにリバウンド効果を追加したい。たとえば、次のようなビューです。

-------------------------------------------------- ------------------------------------
| | コンテンツ |
| | コンテンツ |
| | コンテンツ |
| | コンテンツ |
| | コンテンツ |
-------------------------------------------------- ------------------------------------

通常の場合HorizontalScrollView、右方向キーを押すと、このビューは効果がありませんが、このビューがゼリーのように跳ね返ります。

この種のアニメーションを実装するにはどうすればよいですか?

4

1 に答える 1

0

Horizo​​ntalScrollView の場合、幅が子ビューよりも大きい場合はスクロールしないため、エッジ効果はありません。これを試して、リバウンド効果を追加できます。

public class OverScrollHorizontalScrollView extends HorizontalScrollView {
    ...
    public OverScrollHorizontalScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        setOverScrollMode(OVER_SCROLL_ALWAYS);
    }
    ...
    @Override
    protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY,
                                   int scrollRangeX, int scrollRangeY, int maxOverScrollX,
                                   int maxOverScrollY, boolean isTouchEvent) {
        maxOverScrollX = 90; // this is the rebound distance, set yours
        return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY,
                maxOverScrollX, maxOverScrollY, isTouchEvent);
    }
    ...
}
于 2014-12-25T02:06:33.397 に答える