如果以从左到右的字符(英语,数字等等)开始,如何从右到左显示TextView?

时间:2016-11-27 11:16:11

标签: android unicode textview right-to-left

如果以从左到右的字母(英文,数字等等)开头,如何从右到左显示TextView?

我可以用

android:textDirection="rtl"

但我想支持17以上的旧版本。

我的另一个解决方案是检查:

public static boolean isStartWithEnglishUnicodeOrDigits(String str) {
    str = str.toLowerCase();
    String abc = "abcdefghijklmnopqrstuvwxyz";
    String digits = "1234567890";
    try {
        for (int i = 0; i < abc.length(); i++) {
            if (str.charAt(0) == abc.charAt(i)) {
                return true;
            }
        }
        for (int i = 0; i < digits.length(); i++) {
            if (str.charAt(0) == digits.charAt(i)) {
                return true;
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return false;
}

如果为true,我添加char表示从右到左强制:

    x = "\u200F" + x;

我讨厌这个解决方案,所以我问你将如何解决这个问题?

谢谢!

2 个答案:

答案 0 :(得分:0)

只需将TextView宽度设置为所需大小

即可

并设置:

  

机器人:比重= “右”

答案 1 :(得分:0)

  

但我想支持旧版本而不是17

但Android仅支持从17开始的本地rtl文本:http://android-developers.blogspot.de/2013/03/native-rtl-support-in-android-42.html

唯一的办法就是做自己的黑客攻击,找到一些可以进行黑客攻击的库,但不会有任何Android原生支持。