新手引导是每个 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方法