弹性滑动---使用延时策略

延时策略的核心思想是通过发送一系列延时消息从而达到一种渐进式的效果,具体来说可以使用Handler或View的postDelayed方法,也可以使用线程的sleep方法,对于postDelayed方法来说,我们可以通过它来延时发送一个消息,然后在消息中来进行View的滑动,如果接连不断地发送这种延时消息,那么就可以实现弹性滑动的效果,对于sleep方法来说,通过在while循环中不断地滑动View和Sleep,就可以实现弹性滑动的效果。
下面采用Handler来做个示例,其他方法请你自行去尝试,思想都是类似的。下面的代码在大约1000ms内将View的内容向左移动了100像素,代码比较简单,就不再详细介绍了。之所以说大约1000ms,是因为这种方式无法精确地定时,原因是系统的消息调度也是要时间的,并且所需时间不定。

     private static final int MESSAGE_SCROLL_TO = 1;
     private static final int FRAME_COUNT = 30;
     private static final int DELAYED_TIME = 33;
     private int mCount = 0;
     @SuppressLint("HandlerLeak")
     private Handler mHandler = new Handler(){
         public void handleMessage(Message msg){
            switch(msg.what){
              case MESSAGE_SCROLL_TO:{
                mCount++;
                if(mCount <= FRAME_COUNT){
                   float fraction = mCount / (float) FRAME_COUNT;
                   int scrollX = (int) (fraction * 100);
                   mButton1.scrollTo(scrollX,0);
                   mHandler.sendEmptyMessageDelayed(MESSAGE_SCROLL_TO,DELAYED_TIME);
                   }
                   break;
                   }
                   default:
                   break;
}
};
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Playwright是一个功能强大的自动化测试工具,可以通过使用它的API来模拟用户在浏览器中的操作。对于时间滑动picker-hooks的处理,可以通过以下步骤实现: 1. 使用Page对象的waitForSelector方法等待时间滑动picker-hooks元素加载完成。 2. 使用Page对象的click方法单击时间滑动picker-hooks元素,以打开时间选择器。 3. 使用Page对象的waitForSelector方法等待时间选择器中的小时、分钟、AM/PM等元素加载完成。 4. 使用Page对象的selectOption方法选择所需的时间。 5. 使用Page对象的click方法单击时间选择器中的确认按钮,以关闭时间选择器。 下面是一个使用Playwright处理时间滑动picker-hooks的示例代码: ```javascript const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch(); const context = await browser.newContext(); const page = await context.newPage(); await page.goto('https://www.example.com'); // 等待时间滑动picker-hooks元素加载完成 await page.waitForSelector('#time-picker'); // 单击时间滑动picker-hooks元素,打开时间选择器 await page.click('#time-picker'); // 等待时间选择器中的小时、分钟、AM/PM等元素加载完成 await page.waitForSelector('#time-picker .hours'); await page.waitForSelector('#time-picker .minutes'); await page.waitForSelector('#time-picker .am-pm'); // 选择所需的时间 await page.selectOption('#time-picker .hours', '1'); await page.selectOption('#time-picker .minutes', '30'); await page.selectOption('#time-picker .am-pm', 'PM'); // 单击确认按钮,关闭时间选择器 await page.click('#time-picker .confirm'); await browser.close(); })(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值