Kri*_*iti 1 android android-viewpager kotlin
我是Kotlin的新手,片段中有View Pager,并且已在其中设置了pager适配器。一切工作正常,但是当我尝试停止在Kotlin中查看寻呼机的页面滑动并且在Kotlin中找不到任何方法时。我试图在堆栈上找到解决方案,但是没有运气。尽管Java中有很多,但Kotlin却没有。
我已经使用Java作为
viewPager.setPagingEnabled(false);
Run Code Online (Sandbox Code Playgroud)
但是每当我在Kotlin中尝试此操作时,我都会出错。任何帮助将不胜感激。
Mat*_*ith 11
我基于从Java转换此答案创建了Kotlin版本:https : //stackoverflow.com/a/13437997/8023278
没有内置的方法可以禁止在ViewPager的页面之间滑动,需要的是ViewPager的扩展,该扩展会覆盖onTouchEvent和onInterceptTouchEvent以防止滑动动作。为了使其更通用,我们可以添加一个setSwipePagingEnabled方法来启用/禁用页面之间的滑动。
class SwipeLockableViewPager(context: Context, attrs: AttributeSet): ViewPager(context, attrs) {
private var swipeEnabled = false
override fun onTouchEvent(event: MotionEvent): Boolean {
return when (swipeEnabled) {
true -> super.onTouchEvent(event)
false -> false
}
}
override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
return when (swipeEnabled) {
true -> super.onInterceptTouchEvent(event)
false -> false
}
}
fun setSwipePagingEnabled(swipeEnabled: Boolean) {
this.swipeEnabled = swipeEnabled
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在布局xml中,使用新的SwipeLockableViewPager而不是标准ViewPager
<mypackage.SwipeLockableViewPager
android:id="@+id/myViewPager"
android:layout_height="match_parent"
android:layout_width="match_parent" />
Run Code Online (Sandbox Code Playgroud)
现在我们可以在活动/片段中进行呼叫,myViewPager.setSwipePagingEnabled(false)并且用户将无法在页面之间滑动
| 归档时间: |
|
| 查看次数: |
2918 次 |
| 最近记录: |