Search in sources :

Example 1 with HookWXHorizontalScrollView

use of com.eros.framework.extend.hook.ui.view.HookWXHorizontalScrollView in project WeexErosFramework by bmfe.

the class HookWxScroller method initComponentHostView.

protected ViewGroup initComponentHostView(@NonNull Context context) {
    String scroll;
    if (this.getDomObject() != null && !this.getDomObject().getAttrs().isEmpty()) {
        scroll = this.getDomObject().getAttrs().getScrollDirection();
    } else {
        scroll = "vertical";
    }
    Object host;
    if ("horizontal".equals(scroll)) {
        this.mOrientation = 0;
        HookWXHorizontalScrollView scrollView = new HookWXHorizontalScrollView(context);
        this.mRealView = new FrameLayout(context);
        scrollView.setScrollViewListener(new WXHorizontalScrollView.ScrollViewListener() {

            public void onScrollChanged(WXHorizontalScrollView scrollView, int x, int y, int oldx, int oldy) {
                procAppear(x, y, oldx, oldy);
            }
        });
        FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(-1, -1);
        scrollView.addView(this.mRealView, layoutParams);
        scrollView.setHorizontalScrollBarEnabled(false);
        host = scrollView;
    } else {
        this.mOrientation = 1;
        HookBounceScrollerView scrollerView = new HookBounceScrollerView(context, this.mOrientation, this);
        this.mRealView = new FrameLayout(context);
        WXScrollView innerView = (WXScrollView) scrollerView.getInnerView();
        innerView.addScrollViewListener(this);
        FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(-1, -1);
        innerView.addView(this.mRealView, layoutParams);
        innerView.setVerticalScrollBarEnabled(true);
        innerView.setNestedScrollingEnabled(WXUtils.getBoolean(this.getDomObject().getAttrs().get("nestedScrollingEnabled"), Boolean.valueOf(true)).booleanValue());
        innerView.addScrollViewListener(new WXScrollView.WXScrollViewListener() {

            public void onScrollChanged(WXScrollView scrollView, int x, int y, int oldx, int oldy) {
            }

            public void onScrollToBottom(WXScrollView scrollView, int x, int y) {
            }

            public void onScrollStopped(WXScrollView scrollView, int x, int y) {
                List<OnWXScrollListener> listeners = getInstance().getWXScrollListeners();
                if (listeners != null && listeners.size() > 0) {
                    Iterator var5 = listeners.iterator();
                    while (var5.hasNext()) {
                        OnWXScrollListener listener = (OnWXScrollListener) var5.next();
                        if (listener != null) {
                            listener.onScrollStateChanged(scrollView, x, y, 0);
                        }
                    }
                }
            }

            public void onScroll(WXScrollView scrollView, int x, int y) {
                List<OnWXScrollListener> listeners = getInstance().getWXScrollListeners();
                if (listeners != null && listeners.size() > 0) {
                    Iterator var5 = listeners.iterator();
                    while (var5.hasNext()) {
                        OnWXScrollListener listener = (OnWXScrollListener) var5.next();
                        if (listener != null) {
                            if (listener instanceof ICheckBindingScroller) {
                                if (((ICheckBindingScroller) listener).isNeedScroller(getRef(), (Object) null)) {
                                    listener.onScrolled(scrollView, x, y);
                                }
                            } else {
                                listener.onScrolled(scrollView, x, y);
                            }
                        }
                    }
                }
            }
        });
        host = scrollerView;
    }
    ((ViewGroup) host).getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

        @TargetApi(16)
        public void onGlobalLayout() {
            procAppear(0, 0, 0, 0);
            View view;
            if ((view = getHostView()) != null) {
                if (Build.VERSION.SDK_INT >= 16) {
                    view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                } else {
                    view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                }
            }
        }
    });
    return (ViewGroup) host;
}
Also used : WXHorizontalScrollView(com.taobao.weex.ui.view.WXHorizontalScrollView) HookWXHorizontalScrollView(com.eros.framework.extend.hook.ui.view.HookWXHorizontalScrollView) ViewGroup(android.view.ViewGroup) ICheckBindingScroller(com.taobao.weex.common.ICheckBindingScroller) OnWXScrollListener(com.taobao.weex.common.OnWXScrollListener) View(android.view.View) WXHorizontalScrollView(com.taobao.weex.ui.view.WXHorizontalScrollView) BaseBounceView(com.taobao.weex.ui.view.refresh.wrapper.BaseBounceView) BounceScrollerView(com.taobao.weex.ui.view.refresh.wrapper.BounceScrollerView) HookWXHorizontalScrollView(com.eros.framework.extend.hook.ui.view.HookWXHorizontalScrollView) WXScrollView(com.taobao.weex.ui.view.WXScrollView) HookBounceScrollerView(com.eros.framework.extend.hook.ui.view.HookBounceScrollerView) Point(android.graphics.Point) HookWXHorizontalScrollView(com.eros.framework.extend.hook.ui.view.HookWXHorizontalScrollView) WXScrollView(com.taobao.weex.ui.view.WXScrollView) FrameLayout(android.widget.FrameLayout) Iterator(java.util.Iterator) WXDomObject(com.taobao.weex.dom.WXDomObject) HookBounceScrollerView(com.eros.framework.extend.hook.ui.view.HookBounceScrollerView) List(java.util.List) ArrayList(java.util.ArrayList) ViewTreeObserver(android.view.ViewTreeObserver) TargetApi(android.annotation.TargetApi)

Example 2 with HookWXHorizontalScrollView

use of com.eros.framework.extend.hook.ui.view.HookWXHorizontalScrollView in project WeexErosFramework by bmfe.

the class HookWxScroller method setPagingEnable.

@WXComponentProp(name = HookConstants.NAME.PAGINGENABLED)
public void setPagingEnable(boolean pagingEnable) {
    this.mPagingEnable = pagingEnable;
    ViewGroup innerView = getInnerView();
    if (innerView instanceof WXHorizontalScrollView) {
        ((HookWXHorizontalScrollView) innerView).setPageEnable(this.mPagingEnable);
    }
}
Also used : HookWXHorizontalScrollView(com.eros.framework.extend.hook.ui.view.HookWXHorizontalScrollView) ViewGroup(android.view.ViewGroup) WXHorizontalScrollView(com.taobao.weex.ui.view.WXHorizontalScrollView) HookWXHorizontalScrollView(com.eros.framework.extend.hook.ui.view.HookWXHorizontalScrollView) WXComponentProp(com.taobao.weex.ui.component.WXComponentProp)

Aggregations

ViewGroup (android.view.ViewGroup)2 HookWXHorizontalScrollView (com.eros.framework.extend.hook.ui.view.HookWXHorizontalScrollView)2 WXHorizontalScrollView (com.taobao.weex.ui.view.WXHorizontalScrollView)2 TargetApi (android.annotation.TargetApi)1 Point (android.graphics.Point)1 View (android.view.View)1 ViewTreeObserver (android.view.ViewTreeObserver)1 FrameLayout (android.widget.FrameLayout)1 HookBounceScrollerView (com.eros.framework.extend.hook.ui.view.HookBounceScrollerView)1 ICheckBindingScroller (com.taobao.weex.common.ICheckBindingScroller)1 OnWXScrollListener (com.taobao.weex.common.OnWXScrollListener)1 WXDomObject (com.taobao.weex.dom.WXDomObject)1 WXComponentProp (com.taobao.weex.ui.component.WXComponentProp)1 WXScrollView (com.taobao.weex.ui.view.WXScrollView)1 BaseBounceView (com.taobao.weex.ui.view.refresh.wrapper.BaseBounceView)1 BounceScrollerView (com.taobao.weex.ui.view.refresh.wrapper.BounceScrollerView)1 ArrayList (java.util.ArrayList)1 Iterator (java.util.Iterator)1 List (java.util.List)1