【问题标题】:Sliding tab layout for right to left languages从右到左语言的滑动选项卡布局
【发布时间】:2015-01-28 12:46:48
【问题描述】:

我正在使用SlidingTabLayout,我想从右向左滑动标签,但我找不到方法。

我已经尝试过 'setGravity()' 方法,但它不起作用。

【问题讨论】:

  • RTL 使用哪种语言
  • @MuhammadBabar 我将 SlidingTabLayout.java 中容器布局的重力和 viewPager 的 setCurrentItem 更改为最后一项,它可以工作

标签: android android-viewpager pagerslidingtabstrip


【解决方案1】:

也许你需要尝试布局镜像:

要利用 RTL 布局镜像,只需对您的应用进行以下更改:

  1. 在您的应用清单中声明您的应用支持 RTL 镜像。 具体来说,将 android:supportsRtl="true" 添加到清单文件中的元素。

  2. 将应用的所有“左/右”布局属性更改为新的“开始/结束”等效项。 如果您将应用程序定位到 Android 4.2(应用程序的 targetSdkVersion 或 minSdkVersion 为 17 或更高版本),那么您应该使用“start”和“end”而不是“left”和“right”。例如,android:paddingLeft 应该变成 android:paddingStart。 如果您希望您的应用程序使用低于 Android 4.2 的版本(应用程序的 targetSdkVersion 或 minSdkVersion 为 16 或更低),那么您应该在“left”和“right”之外添加“start”和 end”。例如,您将同时使用 android:paddingLeft 和 android:paddingStart。

【讨论】:

    【解决方案2】:

    你可以使用

     android.support.design.widget.TabLayout
    

    来自最新 SDK 的库 android.support.design 并在上面申请Xcihnegan答案

    【讨论】:

      【解决方案3】:

      我已尝试通过以下方式解决此问题:

       private void scrollToTab(int tabIndex, int positionOffset) {
              if (isRtlMode()) {
                  scrollToTabRtl(tabIndex, positionOffset);
              } else {
                  scrollToLtr(tabIndex, positionOffset);
              }
          }
      
       private void scrollToTabRtl(int tabIndex, int positionOffset) {
              final int maxItemCount = mTabStrip.getChildCount();
              if (maxItemCount == 0 || tabIndex < 0 || tabIndex >= maxItemCount) {
                  return;
              }
              View activeItemView = mTabStrip.getChildAt(tabIndex);
              if (activeItemView != null) {
                  int totalWidth = getWidth();
                  int targetScroll = totalWidth - activeItemView.getRight() + positionOffset;
                  super.smoothScrollTo(-targetScroll, 0);
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-31
        • 2018-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多