从右到左滑动的屏幕滑动ViewPager

4

我正在使用ViewPager实现屏幕滑动,对于从左到右的语言脚本它能正常工作,但对于从右到左的阿拉伯语脚本不可行。

我能否以相反的顺序滑动ViewPager页面?


您想将滑块从右到左设置,而不是从左到右,这是您所要求的吗? - InnocentKiller
这个对我非常有效 >> https://dev59.com/dGMk5IYBdhLWcg3w_yzo#59389545 - Elfnan Sherif
3个回答

5

试试这个:

viewPager.setCurrentItem(ViewPagerSize);

这将使用户向右滑动到左侧。


我有同样的问题,但我不明白何时放置这段代码。你能帮我吗? - offset

3

在本文发布时,ViewPager仍无法正确处理RTL。在使用TabLayout时,以下是一个解决方法:

  1. Set android:layoutDirection="ltr" in the TabLaout XML, so it will always display left-to-right.
  2. Before you call setupWithViewPager(viewPager), check if running in RTL, and if so, reverse the order of the tabs, and start with the last tab:

    if (MyApp.isRTL()) {
        Collections.reverse(pgAdapter.fragmentList);
        viewPager.setCurrentItem(pgAdapter.getCount() - 1);
    }
    

可以使用以下代码来检查RTL:

public static boolean isRTL() {
    final int directionality = Character.getDirectionality(
            Locale.getDefault().getDisplayName().charAt(0));
    return directionality == Character.DIRECTIONALITY_RIGHT_TO_LEFT ||
            directionality == Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC;
}

0

尝试这个,但不够专业

在xml中为VeiwPager编写以下内容: android:rotationY="180" 并且在veiw_item中也要加上 android:rotationY="180"..


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接