【问题标题】:Android Justify spanable Text-view that support RTL Languages支持 RTL 语言的 Android Justify 可跨文本视图
【发布时间】:2015-10-18 22:33:42
【问题描述】:
我需要在android中创建一个自定义的text-view,首先它应该是justified,然后它应该支持spans和虽然它应该支持 RTL(从右到左)语言,例如:波斯语(波斯语),...
我正在研究这个问题一周!但事实上我陷入了糟糕的境地,因为没有可用的库支持所有这些条件(Justify、Spanable、RTL)
你有什么想法?!
我虽然检查了很多库,例如:Link
【问题讨论】:
标签:
android
textview
right-to-left
spannablestring
text-justify
【解决方案1】:
此代码适用于我的 rtl textView :
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
textView.setJustificationMode(LineBreaker.JUSTIFICATION_MODE_INTER_WORD);
}else {
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
textView.setGravity(Gravity.CENTER_HORIZONTAL);
}
【解决方案2】:
您也许可以使用this。
该包是专门为 Right-ToLeft 和 Justified Textviews 创建的,并且应该支持 Spannable,因为它是 TextView 的扩展。
【解决方案3】:
如何证明 span RTL TextView 的合理性?
首先使用这个库RTL-TextJustify-Android
然后在将文本设置为TextView之前:
TextViewEx = myJustifiedTextView;
myJustifiedTextView = findViewById...........;
finalDescription = "";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
finalDescription = Html.fromHtml(SpanTextHere, Html.FROM_HTML_MODE_COMPACT).toString();
} else {
finalDescription = Html.fromHtml(SpanTextHere).toString();
}
myJustifiedTextView.setText(finalDescription,true);
【解决方案4】:
尝试将android:supportsRtl="true" 添加到清单文件中的<application> 元素,并将您的应用“左/右”布局属性更改为新的“开始/结束”。
请参阅this 链接了解更多信息。