新手引导是每个 App 都具备的。如果新手引导直接用 Activity 来做,可能就会比较繁杂和冗余。所以一般都是 ViewPager 来实现。那么便会有 2 个问题:
- 不能手动滑动
- 当前 item 跳转到下一个 item 要平滑滑动
自定义ViewPager可以解决这 2 个问题,下面直接上代码:
1 | package android.support.v4.view; |
禁止滑动通过触摸事件返回false,这个很好理解了。setCurrentItem及时添加第二个参数为true也没有平滑滑动的效果,参考stackoverflow。
引申
Java 有四种访问权限修饰符:
| 访问权限 | 类 | 包 | 子类 | 其他包 |
|---|---|---|---|---|
| public | √ | √ | √ | √ |
| protected | √ | √ | √ | × |
| default | √ | √ | × | × |
| private | √ | × | × | × |
通过上面的stackoverflow可以看到,当Android Sdk的某个方法是default时,我们是没有权限调用的,有 2 种方式来解决问题:
- 反射
建立相同路径的包名,包访问域可以访问到default方法