前言
最近做语音识别过程中,因为录入界面也查询列表界面都放在ViewPager里面,所以在考虑如果说出查询某个商品时,自动就用代码滑动至对应的页面。如下图两个页面
ViewPager滑动代码
其实滑动的代码非常简单,我们调用里面的arrowScroll即可.
向前翻页,要写成viewpager.arrowScroll(1);
向后翻页,要写成viewpager.arrowScroll(2);
本来简单加上两行觉得没什么问题,结果在录入界面就从来没有往后翻页,如果在列表界面倒是能跳转到录入界面来。这是什么鬼?
于是我们就看一下ViewPager的一个公共方法arrowScroll,查看代码我们可以有两个重要的发现:
我们可以看到调用arrowScroll方法用参数1或者17就可以实现向左翻页;参数2或66就可以实现向右翻页。
但是如果我们的UI中有EditText这种获得focus的widget时,则必须用17和66,否则无法实现arrowScroll的效果。
回头再来看我们刚才两个页面,可以看到录入界面里面有三个EditText用于输入的,所以就没有实现我们的效果,后来我把arrwoScroll的参数从1和2改为了17和66后完美解决问题。
-END-