setRotationY(180) on recyclerview or viewpager creating scroll issue in Android 9(API 28)

后端 未结 4 482
你的背包
你的背包 2021-01-15 09:08

I am managing RTL contents by implementing setRotationY for recyclerview and viewpagers but it seems that it is creating scroll/swipe issues in only devices with API 28 othe

相关标签:
4条回答
  • 2021-01-15 09:12

    I had this issue with ViewPager on API 28 because of ViewPager.setRotatingY(180) so that i can support RTL, I've tried replacing rotation with layoutDirection="locale", but it didn't work. I found a library for supporting RTL ViewPager here's a link https://github.com/duolingo/rtl-viewpager.

    Add it to dependencies and just make sure you add layoutDirection="locale" to the RtlViewPager

    <com.duolingo.open.rtlviewpager.RtlViewPager
            android:layoutDirection="locale"
            android:keepScreenOn="true"
            android:id="@+id/quranViewpager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:animateLayoutChanges="true"
         />
    

    Update

    ViewPager2 is locale friendly so it's automatically will change swipe direction according to the current device locale.

    Some helpful links on the implementation of ViewPager2:

    Android docs

    Sample

    0 讨论(0)
  • 2021-01-15 09:12

    You can also use the layoutDirection in your recyclerview or viewpager like:

     <android.support.v4.view.ViewPager
            android:id="@+id/view_pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layoutDirection="locale"/>
    

    Or the inflated View. So it will work perfectly.

    0 讨论(0)
  • 2021-01-15 09:13

    Check for the current version of SDK :

      if(Build.VERSION.SDK_INT >= 28) {
            // Call some material design APIs here
    
            recyclerView.setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE);
    
        } else {
            // Implement this feature without material design
            recyclerView.setRotationY(180);
    
    
        }
    
    0 讨论(0)
  • 2021-01-15 09:21

    Issue was with this sliding tab strip library I was using. It would work perfectly as per other answers, we just have to add layoutDirection attribute to viewpager.

    0 讨论(0)
提交回复
热议问题