在Android中Viewpager控制器的速度减慢用android中的viewpager适配器有没有办法减慢滚动速度?你知道,我一直在看这段代码。我无法弄清楚我错了什么。try{
Field mScroller = mPager.getClass().getDeclaredField("mScroller");
mScroller.setAccessible(true);
Scroller scroll = new Scroller(cxt);
Field scrollDuration = scroll.getClass().getDeclaredField("mDuration");
scrollDuration.setAccessible(true);
scrollDuration.set(scroll, 1000);
mScroller.set(mPager, scroll);}catch (Exception e){
Toast.makeText(cxt, "something happened", Toast.LENGTH_LONG).show();}它没有改变什么,但没有例外发生?
3 回答
偶然的你
TA贡献1841条经验 获得超3个赞
基于已接受的解决方案,我创建了kotlin类,其中包含视图寻呼机的扩展。请享用!:)
class ViewPageScroller : Scroller {
var fixedDuration = 1500 //time to scroll in milliseconds
constructor(context: Context) : super(context)
constructor(context: Context, interpolator: Interpolator) : super(context, interpolator)
constructor(context: Context, interpolator: Interpolator, flywheel: Boolean) : super(context, interpolator, flywheel)
override fun startScroll(startX: Int, startY: Int, dx: Int, dy: Int, duration: Int) {
// Ignore received duration, use fixed one instead
super.startScroll(startX, startY, dx, dy, fixedDuration)
}
override fun startScroll(startX: Int, startY: Int, dx: Int, dy: Int) {
// Ignore received duration, use fixed one instead
super.startScroll(startX, startY, dx, dy, fixedDuration)
}}fun ViewPager.setViewPageScroller(viewPageScroller: ViewPageScroller) {
try {
val mScroller: Field = ViewPager::class.java.getDeclaredField("mScroller")
mScroller.isAccessible = true
mScroller.set(this, viewPageScroller)
} catch (e: NoSuchFieldException) {
} catch (e: IllegalArgumentException) {
} catch (e: IllegalAccessException) {
}}- 3 回答
- 0 关注
- 681 浏览
添加回答
举报
0/150
提交
取消
