如何从nativescript angular访问本地android scrollview侦听器?

时间:2019-02-27 06:40:22

标签: nativescript nativescript-angular

我正在使用nativescript应用程序工作的android和ios应用程序,我创建了自定义的滚动视图,并在nativescript angular中扩展了android.widget.ScrollView,我在scrollview中有侦听器。原生脚本角度滚动视图。如何将这个android自定义侦听器设置为滚动视图,例如设置ios委托方法?

我自定义的scrollView java类是:

import android.content.Context;

public class AndScroll extends org.nativescript.widgets.VerticalScrollView
{
    public interface OnEndScrollListener {
        public void onEndScroll(int x,int y);
    }
    private boolean mIsFling;
    private OnEndScrollListener mOnEndScrollListener;

    public AndScroll(Context context)
    {
        super(context)
    }
    @Override
    public void fling(int velocityY) {
        super.fling(velocityY);
        mIsFling = true;
    }
    @Override
    protected void onScrollChanged(int x, int y, int oldX, int oldY) {
        super.onScrollChanged(x, y, oldX, oldY);
        if (mIsFling) {
            if (Math.abs(y - oldY) < 2 || y >= getMeasuredHeight() || y == 0) {
                if (mOnEndScrollListener != null) {
                    mOnEndScrollListener.onEndScroll(x,y);
                }
                mIsFling = false;
            }
        }
    }
    public OnEndScrollListener getOnEndScrollListener() {
        return mOnEndScrollListener;
    }

    public void setOnEndScrollListener(OnEndScrollListener mOnEndScrollListener) {
        this.mOnEndScrollListener = mOnEndScrollListener;
    }


}

我想访问FoodCourt Scroll ts类中的自定义类:

public createNativeView() {
    return this.orientation === "horizontal" ? new org.nativescript.widgets.HorizontalScrollView(this._context) : new org.nativescript.widgets.VerticalScrollView(this._context);
}

如何在我的foodcourt类(如

)中访问My AndScroll Java类
new org.nativescript.widgets.VerticalScrollView

1 个答案:

答案 0 :(得分:1)

如果要在修改时保留ScrollView组件公开的功能,则应使用org.nativescript.widgets.VerticalScrollView

如果您的目标只是截获OnScrollChangedListener,那么您就必须像在原始源代码中here一样完成它。

但是我认为您实际上并不需要这些,scroll事件本身会不断为您提供x&y点,只要您在OnScrollChangedListener内就可以找到。