Android - ScrollView添加提示Arrow(箭头)

来源:互联网 发布:怎么推广淘宝优惠券 编辑:程序博客网 时间:2024/05/22 03:27

ScrollView添加提示Arrow(箭头)


本文地址:http://blog.csdn.net/caroline_wendy


ScrollView的滑动功能中,需要给用户提示,可以滑动,可以添加两个箭头。

定制ScrollView,创建监听器IScrollStateListener接口:
    private IScrollStateListener scrollStateListener;    public void setScrollStateListener(IScrollStateListener listener) {        scrollStateListener = listener;    }    public interface IScrollStateListener {        void onScrollMostLeft();        void onScrollFromMostLeft();        void onScrollMostRight();        void onScrollFromMostRight();    }


在监听滑动的时候,调用监听滑动事件(onScrollChanged)
    @Override    protected void onScrollChanged(int l, int t, int oldl, int oldt) {        super.onScrollChanged(l, t, oldl, oldt);        if (scrollStateListener != null) {            if (l == 0) {                scrollStateListener.onScrollMostLeft();            } else if (oldl == 0) {                scrollStateListener.onScrollFromMostLeft();            }            int mostRightL = this.getChildAt(0).getWidth()-getWidth();            if (l >= mostRightL) {                scrollStateListener.onScrollMostRight();            } else if (oldl >= mostRightL && l < mostRightL) {                scrollStateListener.onScrollFromMostRight();            }        }    }


在使用滑动条时,给监听事件,传递具体事务:
        final ImageView leftArrow = (ImageView)view.findViewById(R.id.doctor_gather_imageview_leftarrow);        final ImageView rightArrow = (ImageView)view.findViewById(R.id.doctor_gather_imageview_rightarrow);        AutoHorizontalScrollView scrollView = (AutoHorizontalScrollView)view.findViewById(R.id.doctor_gather_scrollview);        scrollView.setScrollStateListener(new AutoHorizontalScrollView.IScrollStateListener() {            @Override            public void onScrollMostLeft() {                Log.e(DEBUG + TAG, "滑动条最左面");                leftArrow.setVisibility(View.INVISIBLE);                rightArrow.setVisibility(View.VISIBLE);            }            @Override            public void onScrollFromMostLeft() {                Log.e(DEBUG+TAG, "滑动条离开最左面");                leftArrow.setVisibility(View.VISIBLE);                rightArrow.setVisibility(View.VISIBLE);            }            @Override            public void onScrollMostRight() {                Log.e(DEBUG+TAG, "滑动条最右面");                leftArrow.setVisibility(View.VISIBLE);                rightArrow.setVisibility(View.INVISIBLE);            }            @Override            public void onScrollFromMostRight() {                Log.e(DEBUG+TAG, "滑动条离开最右面");                leftArrow.setVisibility(View.VISIBLE);                rightArrow.setVisibility(View.VISIBLE);            }        });


即可。

参考:http://stackoverflow.com/questions/9062227/how-to-set-images-for-scrollview-instead-of-fading-edges





1 1
原创粉丝点击