有没有办法强制ViewPager2 RTL方向?我已经将android:layoutDirection="rtl"设置为viewPager2,但由于清单中的android:supportsRtl="false",它仍然是LTR。我该如何解决这个问题?
android:layoutDirection="rtl"
android:supportsRtl="false"
ovfsdjhp1#
我没有找到一个官方的解决方案,所以我首先旋转翻页:
viewPager2.rotationY = (180).toFloat()
并覆盖FragmentStateAdapter中的onBindViewHolder(),如下所示:
override fun onBindViewHolder( holder: FragmentViewHolder, position: Int, payloads: MutableList<Any> ) { super.onBindViewHolder(holder, position, payloads) holder.itemView.rotationY = 180.toFloat() }
那是我的工作
ix0qys7i2#
设置supportsRtl=真并添加
<item name="android:layoutDirection">ltr</item>
在您应用主题中,将LTR方向设置为全局(与android:supportsRtl=“false”相同)并定义样式,如下所示:
<style name="AppTheme.RTL" parent="AppTheme"> <item name="android:layoutDirection">rtl</item> </style>
并将此样式设置为viewpager或其他要RTL的视图的主题。请确保使用android:theme而不是style
<androidx.viewpager2.widget.ViewPager2 android:id="@+id/viewPager" android:layout_width="match_parent" android:theme="@style/AppTheme.Dark.RTL" android:layout_height="match_parent" android:background="#1F1F1F" android:saveEnabled="false" />
2条答案
按热度按时间ovfsdjhp1#
我没有找到一个官方的解决方案,所以我首先旋转翻页:
并覆盖FragmentStateAdapter中的onBindViewHolder(),如下所示:
那是我的工作
ix0qys7i2#
设置supportsRtl=真并添加
在您应用主题中,将LTR方向设置为全局(与android:supportsRtl=“false”相同)并定义样式,如下所示:
并将此样式设置为viewpager或其他要RTL的视图的主题。请确保使用android:theme而不是style