最新消息:欢迎访问Android开发中文站!商务联系微信:loading_in

ScrollView添加提示Arrow(箭头)

开发进阶 AndroidChina 4164浏览 0评论

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

转载请注明:Android开发中文站 » ScrollView添加提示Arrow(箭头)

您必须 登录 才能发表评论!