标签: right-to-left

带有约束和 RTL 的 UIScrollView 的奇怪行为

我有一个水平滚动视图,我可以在其中动态添加视图。在 LTR 语言上一切正常,我从左到右一个接一个地添加视图。在 RTL 上,问题是视图总是添加到滚动的左侧而不是像其他控制器一样添加到右侧,视图顺序正确添加的真正奇怪的工作人员,在第一个视图的左侧,所以他们从右到左排序,但在 -x 上的滚动视图之外。

这是我添加新视图时的代码:

Tag* tag = [self.storyboard instantiateViewControllerWithIdentifier:@"tag" ];
[_scroller addSubview:tag.view];
[tags addObject:tag];
Tag* prev = nil
for (Tag* tag in tags)
{
    if (prev == nil)
    {
        [_scroller addConstraint:[NSLayoutConstraint constraintWithItem:tag.view 
                                                       attribute:NSLayoutAttributeLeading                                                                                          
                                                       relatedBy:NSLayoutRelationEqual
                                                                     toItem:_scroller
                                                                  attribute:NSLayoutAttributeLeading
                                                                 multiplier:1.0f
                                                                   constant:0]];
    }
    else
    {
        [_scroller addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"[prev]-10-[tag]"
                                                                          options:0
                                                                          metrics:nil
                                                                            views:@{@"tag" : tag.view, @"prev" : prev.view}]];
    }

    [_scroller addConstraint:[NSLayoutConstraint constraintWithItem:tag.view
                                                          attribute:NSLayoutAttributeCenterY
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:_scroller
                                                          attribute:NSLayoutAttributeCenterY
                                                             multiplier:1.0f
                                                               constant:0]];
    prev = tag;

}
Run Code Online (Sandbox Code Playgroud)

这是它如何在 LTR 和 RTL 上工作以及它如何实际工作的图像 在此处输入图片说明

uiscrollview right-to-left ios autolayout nslayoutconstraint

5
推荐指数
1
解决办法
1151
查看次数

使用 -webkit-overflow-scrolling: touch 和 -webkit-transform: translate3d(0,0,0) 的 iOS Safari RTL 偏移问题

我正在处理一个复杂的控件,我们在移动 Safari 中发现了 RTL 模式(仅限)的错误。现在我已经将功能剥离到基本 div 容器(似乎 jsfiddle 不支持 RTL 模式)。

RTL(问题):http : //markuskonrad.de/concepts/overflow/overflowissue-rtl.html

LTR(常规 - 无问题):http : //markuskonrad.de/concepts/overflow/overflowissue-ltr.html

测试设备:

  • iPad 2 (iOS 8.2)
  • iPad 迷你 (iOS 8.3)
  • iPad Air (iOS 8.3)
  • iPhone 4 (iOS 7.1)

是否有可能存在 Safari Mobile 错误?我只在那里面临这个问题。

我知道 translate3d 是硬件加速的一种技巧,并且我们没有面临一些 scrollContent-Div 子元素的渲染问题。所以目前唯一的选择是等待对will-change属性的支持。还有其他想法吗?

HTML代码

<html dir="rtl" lang="en-US">
<head>
    <link href="Styles/overflowissue.css" rel="stylesheet" />
</head>
<body>
    <div id="scrollContainer" class="mySuiteUiScrollContainer">
        <div id="scrollContent">
            <p>
                123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_
                123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_
            </p>
        </div>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

CSS代码

.mySuiteUiScrollContainer {
    clear: both;
    display: block; …
Run Code Online (Sandbox Code Playgroud)

html css webkit right-to-left ios

5
推荐指数
0
解决办法
502
查看次数

如何在波斯语(rtl)文本中使用 SVG 文本路径

我想对波斯语文本使用 textpath 功能,但是当我这样做时,波斯语文本会分成几个字母:

SVG 文本路径

在不使用 textpath 功能的情况下更正波斯语文本:?? ??????????? ????? ?? ??????

svg persian right-to-left

5
推荐指数
1
解决办法
1014
查看次数

在自定义视图中绘制时支持 RTL 语言环境

当我使用 Canvas 在我的自定义视图中绘制时,是否有一种简单的方法可以在不手动反转坐标计算的情况下为 RTL 区域设置绘制?

作为一个非常人为的例子,这是一个自定义视图,在 onDraw() 中包含以下内容:

int w = getWidth();
int h = getHeight();
canvas.save();

mPaint.setColor(Color.RED);
canvas.drawRect(0, 0, w / 2, h, mPaint);
mPaint.setColor(Color.BLUE);
canvas.drawRect(w / 2, 0, w, h, mPaint);

int size = h / 4;
mPaint.setColor(Color.GREEN);
int paddingEnd = ViewCompat.getPaddingEnd(this);
canvas.translate(-paddingEnd, getPaddingTop());
canvas.drawRect(w - size, 0, w, size, mPaint);

canvas.restore();
Run Code Online (Sandbox Code Playgroud)

它在 LTR 和 RTL 布局中看起来完全相同:

在此处输入图片说明

我知道您可以使用矩阵或 canvas.scale(),但是对于更复杂的场景,例如在画布上绘制文本或其他可绘制对象,这不是一个可行的选择。

在 Canvas 上完成 RTL 绘图的最佳方法是什么?我真的必须计算 X 轴坐标的倒置值吗?

android android-custom-view right-to-left

5
推荐指数
1
解决办法
1800
查看次数

DialogFragment 上的 Android setLayoutDirection

我最近完成了一个项目的构建,我的下一个目标是专门为 RTL 创建一个构建风格,一个重要的注意事项是我需要强制 RTL 布局,独立于设备语言。

所以我设法使用视图方法setLayoutDirection在大多数应用程序上强制 RTL并旋转所有不合作的视图,但由于某种原因,我无法镜像应用程序中的对话框,这些对话框仅在设备语言更改。我试图翻转 onCreateDialog 中的对话框,访问返回 null 的 getView,但我不确定我还能做什么......

有人可以帮我将 DialogFragment 翻转到 RTL 吗?

谢谢。

java android dialog right-to-left dialogfragment

5
推荐指数
1
解决办法
2435
查看次数

rtl 如何与 Android 中的自定义视图或画布配合使用

我只是想知道,Android 如何在 RTL 模式下使用自定义视图画布。与此示例一样,问题链接

它适用于英语语言环境,但当语言环境更改为阿拉伯语时,其文本(+)消失。

所以我不想要答案,我基本上想知道 RTL 画布是如何工作的。

android canvas android-custom-view right-to-left

5
推荐指数
0
解决办法
404
查看次数

React Native - ios 中的 rtl

首先,我在 android 上工作并且 RTL 运行良好,我添加了以下代码:

   I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
   sharedI18nUtilInstance.setAllowRTL(context, true);
Run Code Online (Sandbox Code Playgroud)

到 MainActivity.java 和

android:supportsRtl="true"
Run Code Online (Sandbox Code Playgroud)

到 AndroidManifest.xml

并在js代码中:

I18nManager.forceRTL(true);
Run Code Online (Sandbox Code Playgroud)

现在是问题:我尝试在 ios 上设置 rtl 但它不起作用我添加了

 // in AppDelegate.m
   [[RCTI18nUtil sharedInstance] allowRTL:YES];
Run Code Online (Sandbox Code Playgroud)

I18nManager.forceRTL(true);
Run Code Online (Sandbox Code Playgroud)

在 js 代码中,但所有文本和 flex 仍然是 ltr...我能做什么?

right-to-left ios react-native

5
推荐指数
2
解决办法
3030
查看次数

显示阿拉伯文本

我想用阿拉伯语显示25%*,它应该是这样的:*%25

我尝试使用direction:rtf来显示它,但是,当您向其附加一些阿拉伯文本时,它似乎只能正确显示。运行下面的代码片段来看看我的意思:

var arabicword = "???";
var percent = "25%*";

document.getElementById('text2').innerHTML = arabicword+" "+percent;
document.getElementById('text1').innerHTML = percent;
Run Code Online (Sandbox Code Playgroud)
.text {
  font-size:3em;
  width:300px;
  color:white;
  background: grey;
}

.arabic{
  background:green;
  direction:rtl;
}
Run Code Online (Sandbox Code Playgroud)
<div id="text1" class="text arabic">0</div>
<br>
<div id="text2" class="text arabic">0</div>
Run Code Online (Sandbox Code Playgroud)
有没有可靠的方法来实现这一目标?我试图添加一个阿拉伯空白字符,但似乎没有

提前致谢

html javascript css arabic right-to-left

5
推荐指数
1
解决办法
1223
查看次数

根据其他规则应用 CSS 规则 - RTL 特定样式

介绍

我正在尝试建立一个可用于多种文化、具有不同阅读方向的网站。

为此,我只需dir="rtl"在我的根 HTML 元素上添加该属性。

我的问题是我有一些特定于一个方向或另一个方向的 CSS 规则(大多数情况下是边距或填充)。

使用属性选择器尝试失败

我认为我可以简单地使用属性选择器,但该dir属性仅设置在根元素上,所以这不起作用:

selector {
  &[dir="ltr"] {
    // LTR specific
  }

  &[dir="rtl"] {
    // RTL specific
  }
}
Run Code Online (Sandbox Code Playgroud)

例如,在这个演示中,如果应用程序rtl在标准 中,则标题在右侧应该有 5px 的边距,如果在标准 中,则在左侧ltr

其他想法

我注意到direction正确设置为rtl,有没有办法在 aCSSSass选择器中使用该规则?

编辑和精度

好像忘记了很重要的一点。我正在使用 Vue.js 构建网站,该dir属性在主组件 ( App) 中是 bind并且 RTL/LTR 特定的 CSS 规则可以在同一组件或其他自包含组件中。

css sass right-to-left

5
推荐指数
1
解决办法
3137
查看次数

material-ui jss-rtl-使用jss-rtl之后,我的页面仍然是LTR

我使用material-ui,并nextjss-rtl我的react项目,但有一个问题的页面仍ltr使用后<JssProvider ...>

-rtl组件代码:

import React from "react";
import { create } from 'jss';
import rtl from 'jss-rtl';
import JssProvider from 'react-jss/lib/JssProvider';
import { createGenerateClassName, jssPreset } from 'material-ui/styles';

// Configure JSS
const jss = create({ plugins: [...jssPreset().plugins, rtl()] });

// Custom Material-UI class name generator.
const generateClassName = createGenerateClassName();

function RTL(props) {
  return (
    <JssProvider jss={jss} generateClassName={generateClassName}>
      {props.children}
    </JssProvider>
  );
}
export default RTL;
Run Code Online (Sandbox Code Playgroud)

-index.js代码:

import React from 'react'; …
Run Code Online (Sandbox Code Playgroud)

right-to-left reactjs material-ui jss

5
推荐指数
1
解决办法
1377
查看次数