自定义ScrollView

时间:2014-06-02 15:03:21

标签: android scrollview customization

我在布局文件中为我的Android应用添加了ScrollView。我还创建了一个class MyScrollView extends ScrollView来实现一些自定义行为。但是当我将ScrollView转换为 -

MyScrollView msv = (MyScrollView) findViewById(R.id.scroll_view);

它引发了一个错误,指出ScrollView无法强制转换为MyScrollView。我如何使用自定义实现?

编辑:

这是MyScrollView的实现 -

class MyScrollView extends ScrollView {
    private GestureDetector gd;
    private View.OnTouchListener tl;

    public MyScrollView() {
        super(ItemDetailFragment.this.getActivity());
    }

    public MyScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        gd = new GestureDetector(context, new YScrollListener());
        setFadingEdgeLength(10);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return super.onInterceptTouchEvent(ev) && gd.onTouchEvent(ev);
    }


    class YScrollListener extends SimpleOnGestureListener {

        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2,
                float distanceX, float distanceY) {
            return (Math.abs(distanceY) > 2 * Math.abs(distanceX));
        }
    }
}

1 个答案:

答案 0 :(得分:0)

只需将MyScrollView放在xml布局中,而不是标准ScrollView,例如

<com.your.app.MyScrollView 
    android:id="@+id/theScrollView"
    ... >

确保您的类具有标准构造函数。