【问题标题】:Viewpager2 swipe gesture only horizontally AndroidViewpager2 仅水平滑动手势 Android
【发布时间】:2020-04-01 04:22:35
【问题描述】:

如何防止 Viewpager2 上的对角滑动,仅当手势严格水平时才允许滑动。

I dot not want this

I want this

【问题讨论】:

    标签: android kotlin android-viewpager2


    【解决方案1】:

    这就是它的工作原理

    来源Medium

     fun ViewPager2.reduceDragSensitivity() {
        val recyclerViewField = ViewPager2::class.java.getDeclaredField("mRecyclerView")
        recyclerViewField.isAccessible = true
        val recyclerView = recyclerViewField.get(this) as RecyclerView
        val touchSlopField = RecyclerView::class.java.getDeclaredField("mTouchSlop")
        touchSlopField.isAccessible = true
        val touchSlop = touchSlopField.get(recyclerView) as Int
        touchSlopField.set(recyclerView, touchSlop*3)
    }
    

    你也必须有这样的 Recyclerview

     <androidx.core.widget.NestedScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layerType="hardware"
            android:orientation="vertical"
            android:overScrollMode="never"
            android:scrollbars="vertical"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">
    
    
            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/recyclerArtist"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center_horizontal"
                android:clipToPadding="false"
                android:layerType="hardware"
                android:orientation="vertical"
                android:overScrollMode="never" />
    
    
        </androidx.core.widget.NestedScrollView>
    

    还有

    ViewCompat.setNestedScrollingEnabled(recyclerView,false)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-14
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-16
      相关资源
      最近更新 更多