• 指令汇B新闻客户端开发(四) 自动轮播条


        在这个新闻客户端,我们可以看到有一个轮播页面,在这个项目中,用Handler和一个定时器来做更容易一些,

    我们定义一个Handler:

    private Handler mHandler;




    定时器的代码如下:

    // 自动轮播条显示
    			if (mHandler == null) {
    				mHandler = new Handler() {
    					public void handleMessage(android.os.Message msg) {
    						int currentItem = mViewPager.getCurrentItem();
    
    						if (currentItem < mTopNewsList.size() - 1) {
    							currentItem++;
    						} else {
    							currentItem = 0;
    						}
    
    						mViewPager.setCurrentItem(currentItem);// 切换到下一个页面
    						mHandler.sendEmptyMessageDelayed(0, 3000);// 继续延时3秒发消息,
    																	// 形成循环
    					};
    				};
    
    				mHandler.sendEmptyMessageDelayed(0, 3000);// 延时3秒后发消息
    			}
    

    轮播条的触摸监听:

    class TopNewsTouchListener implements OnTouchListener {
    
    		@Override
    		public boolean onTouch(View v, MotionEvent event) {
    			switch (event.getAction()) {
    			case MotionEvent.ACTION_DOWN:
    			//	System.out.println("按下");
    				mHandler.removeCallbacksAndMessages(null);// 删除Handler中的所有消息
    				// mHandler.postDelayed(new Runnable() {
    				//
    				// @Override
    				// public void run() {
    				//
    				// }
    				// }, 3000);
    				break;
    			case MotionEvent.ACTION_CANCEL:
    				System.out.println("事件取消");
    				mHandler.sendEmptyMessageDelayed(0, 3000);
    				break;
    			case MotionEvent.ACTION_UP:
    				System.out.println("抬起");
    				mHandler.sendEmptyMessageDelayed(0, 3000);
    				break;
    
    			default:
    				break;
    			}
    
    			return true;
    		}
    
    	}


    // 表示事件是否拦截, 返回false表示不拦截, 可以让嵌套在内部的viewpager相应左右划的事件
    @Override
    public boolean onInterceptTouchEvent(MotionEvent arg0) {
    return false;
    }


  • 相关阅读:
    2019 Multi-University Training Contest 4
    AC自动机
    trie
    Contest1802
    蓝桥杯-某电视台举办了低碳生活大奖赛
    蓝桥杯-有一群海盗(不多于20人),在船上比拼酒量
    蓝桥杯-福尔摩斯到某古堡探险
    蓝桥杯-标题:字符串比较
    蓝桥杯-题目:猜算式
    蓝桥杯-标题:算年龄
  • 原文地址:https://www.cnblogs.com/sdksdk0/p/5585122.html
Copyright © 2020-2023  润新知