カスタマイズされたテキスト ビューでテキストを置き換えようとしています。目的は、テキストを強制的に LTR にすることです。そのために、テキストに「\u200E」プレフィックスを追加しています。現在、setText() はカスタマイズされた textView に影響を与えません。
public class LocalizedTextView extends TextView {
public LocalizedTextView(Context context) {
super(context);
init(context);
}
public LocalizedTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public LocalizedTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
private void init(Context context) {
this.setText("\u200E" + getText().toString());
}
}
そして、これはカスタマイズされた要素です:
<com.tempProject.customviews.LocalizedTextView
android:id="@+id/item_text"
style="@style/DrawerSectionText"
android:textDirection="ltr" />
4.2.0 よりも古いデバイスで、RTL コンテンツを含む textView を強制的に左揃えにするアイデアは大歓迎です。マニフェストで android:supportsRtl フラグを true に設定する必要があります。