我遇到了带有KitKat
的子和上标的问题,所以我想做一个给出文本的方法,返回超级和子脚本所在的位置,所以我可以使用{{1} }和SuperScriptSpan
,因为我不想使用SubScriptSpan
功能
分别检测子脚本和超级脚本的正则表达式是:
Html.fromHtml
和[\u2080-\u2089]
。
一切似乎都正常工作,除非渲染实际发生,因为文本没有正确设置。在下一个屏幕截图中,您可以看到跨度发生了什么:
获得职位的代码如下:
[\u2070-\u2079]
正则表达式改变,如果它是下标 这是我设置所有跨度的代码:
public static ArrayList<int[]> getSuperScripts(String body) {
ArrayList<int[]> spans = new ArrayList<>();
Pattern pattern = Pattern.compile("[\\u2070-\\u2079]");
Matcher matcher = pattern.matcher(body);
// Check all occurrences
while (matcher.find()) {
int[] currentSpan = new int[2];
currentSpan[0] = matcher.start();
currentSpan[1] = matcher.end();
spans.add(currentSpan);
}
return spans;
}
再次,从超级到下标的变化 提前谢谢!