Android 带有 rtl tablayout 的 rtl viewpager
Android rtl viewpager with rtl tablayout
我知道这个问题似乎重复了,但我找不到解决问题的好方法。我将 tablayout 与 viewpager 一起使用,并将 fragmentPagerAdapter 作为 viewpager 的适配器。如您所知,viewpager 不支持 rtl 布局,因此我在 rtl 语言环境中遇到问题。我想标签从 right 开始(第一个标签贴在屏幕的右侧)并且用户可以正确滑动。我怎样才能做到这一点?有什么帮助吗?
我遇到过这种情况,有2种解决方法
1- 假设您有 4 个片段 F1、F2、F3 和 F4,一旦您加载了片段集,现在您必须像 F4、F3、F2 和 F1 那样反向获取适配器中的所有片段select 片段是 = pager.setCurrentItem(Titles.length - 1);
并确保也颠倒标题。
第二种解决方案是使用像
这样的自定义视图寻呼机
希望你处理好这个
最佳解决方案是将 viewpager 旋转到 180:
mViewPager.setRotationY(180); //rotate the viewpager
然后,旋转包含 tablayout 选项卡内容的内部视图(以反转对内容的影响)。以文本视图为例:
if (textView.getRotationY() != 180) {
textView.setRotationY(180);
}
对于 PagerTabStrip,您还应该将 3 个可见标签旋转 180 度:
PagerTabStrip pt= container.findViewById(R.id.pager_tab_strip);
pt.getChildAt(0).setRotationY(180);
pt.getChildAt(1).setRotationY(180);
pt.getChildAt(2).setRotationY(180);
这在阿拉伯语应用程序中对我有用。它也适用于任何 rtl 语言环境。
伙计们好消息:)。 Android 最近添加了名为 ViewPager2 的新 UI 组件。
https://developer.android.com/jetpack/androidx/releases/viewpager2
请在下面找到代码和 links :
dependencies {
implementation "androidx.viewpager2:viewpager2:1.0.0"
}
对之前 ViewPager 实现的改进:
- RTL(从右到左)布局支持
- 垂直方向支持
- 可靠的 Fragment 支持(包括处理对基础 Fragment 集合的更改)
- 数据集更改动画(包括 DiffUtil 支持)
下面link解释了从 ViewPager 到 ViewPager2 的迁移指南:
https://developer.android.com/training/animation/vp2-migration
我们还有演示示例:
https://github.com/android/views-widgets-samples/tree/master/ViewPager2
我知道这个问题似乎重复了,但我找不到解决问题的好方法。我将 tablayout 与 viewpager 一起使用,并将 fragmentPagerAdapter 作为 viewpager 的适配器。如您所知,viewpager 不支持 rtl 布局,因此我在 rtl 语言环境中遇到问题。我想标签从 right 开始(第一个标签贴在屏幕的右侧)并且用户可以正确滑动。我怎样才能做到这一点?有什么帮助吗?
我遇到过这种情况,有2种解决方法
1- 假设您有 4 个片段 F1、F2、F3 和 F4,一旦您加载了片段集,现在您必须像 F4、F3、F2 和 F1 那样反向获取适配器中的所有片段select 片段是 = pager.setCurrentItem(Titles.length - 1);
并确保也颠倒标题。
第二种解决方案是使用像
这样的自定义视图寻呼机希望你处理好这个
最佳解决方案是将 viewpager 旋转到 180:
mViewPager.setRotationY(180); //rotate the viewpager
然后,旋转包含 tablayout 选项卡内容的内部视图(以反转对内容的影响)。以文本视图为例:
if (textView.getRotationY() != 180) {
textView.setRotationY(180);
}
对于 PagerTabStrip,您还应该将 3 个可见标签旋转 180 度:
PagerTabStrip pt= container.findViewById(R.id.pager_tab_strip);
pt.getChildAt(0).setRotationY(180);
pt.getChildAt(1).setRotationY(180);
pt.getChildAt(2).setRotationY(180);
这在阿拉伯语应用程序中对我有用。它也适用于任何 rtl 语言环境。
伙计们好消息:)。 Android 最近添加了名为 ViewPager2 的新 UI 组件。
https://developer.android.com/jetpack/androidx/releases/viewpager2
请在下面找到代码和 links :
dependencies {
implementation "androidx.viewpager2:viewpager2:1.0.0"
}
对之前 ViewPager 实现的改进:
- RTL(从右到左)布局支持
- 垂直方向支持
- 可靠的 Fragment 支持(包括处理对基础 Fragment 集合的更改)
- 数据集更改动画(包括 DiffUtil 支持)
下面link解释了从 ViewPager 到 ViewPager2 的迁移指南:
https://developer.android.com/training/animation/vp2-migration
我们还有演示示例:
https://github.com/android/views-widgets-samples/tree/master/ViewPager2