Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Can';t仅在一个方向上滑动ViewPager2_Android_Android Viewpager2 - Fatal编程技术网

Android Can';t仅在一个方向上滑动ViewPager2

Android Can';t仅在一个方向上滑动ViewPager2,android,android-viewpager2,Android,Android Viewpager2,我尝试在ViewPager2中仅在一个方向(向右)启用滑动。我有5页 我在活动中尝试了以下方法: viewPager2.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { override fun onPageSelected(position: Int) { super.onPageSelected(position)

我尝试在ViewPager2中仅在一个方向(向右)启用滑动。我有5页

我在活动中尝试了以下方法:

viewPager2.registerOnPageChangeCallback(object :
            ViewPager2.OnPageChangeCallback() {

            override fun onPageSelected(position: Int) {
                super.onPageSelected(position)
                if (currentPage == position) {
                    dataBinding.viewPager2.setUserInputEnabled(false)
                }
                if (currentPage < position) { // swipe left
                    dataBinding.viewPager2.setUserInputEnabled(true)
                } else if (currentPage > position) { // swipe right
                    dataBinding.viewPager2.setUserInputEnabled(false)
                }
                currentPage = position; 
            }
        })
viewPager2.registerOnPageChangeCallback(对象:
ViewPager2.OnPageChangeCallback(){
覆盖所选页面(位置:Int){
super.onPageSelected(位置)
如果(当前页面==位置){
dataBinding.viewPager2.setUserInPuneEnabled(false)
}
如果(当前页面<位置){//向左滑动
dataBinding.viewPager2.SetUserInPutened(真)
}如果(当前页面>位置){//向右滑动,则为else
dataBinding.viewPager2.setUserInPuneEnabled(false)
}
当前页面=位置;
}
})
但这没有帮助。这是禁用两个方向。

试试这个方法

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.viewpager2.widget.ViewPager2
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    var previousPage: Int = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        viewpager.adapter = MyAdapter(this)
        viewpager.orientation = ViewPager2.ORIENTATION_HORIZONTAL

        // try this to disable swiping in previous page
        viewpager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
            override fun onPageScrolled(
                position: Int,
                positionOffset: Float,
                positionOffsetPixels: Int
            ) {
                super.onPageScrolled(position, positionOffset, positionOffsetPixels)
                if (position < previousPage) {
                    viewpager.setCurrentItem(previousPage, true)
                } else {
                    previousPage = position
                }
            }
        })
    }
}
导入android.os.Bundle
导入androidx.appcompat.app.appcompat活动
导入androidx.viewpager2.widget.viewpager2
导入kotlinx.android.synthetic.main.activity\u main*
类MainActivity:AppCompatActivity(){
变量上一页:Int=0
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
viewpager.adapter=MyAdapter(此)
viewpager.orientation=ViewPager2.orientation\u水平
//尝试此操作以禁用上一页中的刷卡
viewpager.registerOnPageChangeCallback(对象:ViewPager2.OnPageChangeCallback(){
覆盖已滚动的页面(
职位:Int,
位置偏移:浮动,
位置偏移像素:Int
) {
super.onPageScrolled(位置、位置偏移、位置偏移像素)
如果(位置<上一页){
viewpager.setCurrentItem(上一页,真)
}否则{
上一页=位置
}
}
})
}
}