recyclerview或viewpager上的setRotationY(180)在Android 9(API 28)中创建滚动问题

时间:2019-01-10 13:03:08

标签: android android-recyclerview android-viewpager android-9.0-pie

我正在通过为recyclerview和viewpagers实现setRotationY来管理RTL内容,但似乎仅在具有API 28的设备中会产生滚动/滑动问题,否则它工作得很好。如果我删除setRotationY,它的工作就很好。有人遇到过这个问题吗?如果是这样,如何解决?

P.S。 :旋转360f不会影响滚动,但是旋转180f会影响滚动。

4 个答案:

答案 0 :(得分:0)

您也可以在recyclerview或viewpager中使用layoutDirection,例如:

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

或膨胀的视图。 这样就可以完美地工作。

答案 1 :(得分:0)

检查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);


    }

答案 2 :(得分:0)

问题与我正在使用的this滑动标签条库有关。它将与其他答案完美配合,我们只需要向viewpager添加layoutDirection属性即可。

答案 3 :(得分:0)

由于ViewPager.setRotatingY(180),我在API 28上遇到了ViewPager的问题,因此我可以支持RTL,我尝试用layoutDirection =“ locale”替换旋转,但是没有用。我找到了一个支持RTL ViewPager的库,这里是链接https://github.com/duolingo/rtl-viewpager

将其添加到依赖项中,只需确保将layoutDirection =“ locale”添加到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"
     />