2016-07-02 5 views
0

私の多言語アプリケーションでは、最初の文字に基づいてTextViewのテキスト方向をRTLまたはLTRに処理します。それに応じて重力も設定されます。 私が望むのは、1つのTextViewの異なる行が独自のテキストの方向や重力を持つことです。textViewの異なる行の異なるテキストの方向

Multi directional Text View

私はこれをどのように達成すべき?

更新:は答え

としてbabadaba、TEXT_DIRECTION_ANY_RTLまさに私が欲しいもののように行います。コメントの説明は次のとおりです。

テキストの方向は「any-RTL」アルゴリズムを使用しています。段落の方向は、強いRTL文字が含まれている場合はRTL、そうでない場合はLTR文字が含まれている場合はLTRです。いずれもない場合、段落の方向はビューの解決されたレイアウト方向です。

ここで、問題は17より古いAPIレベルでANY_RTLを実装する方法です。

答えて

2

は、このようなあなたのTextViewを作成します:それはそれは強いアラビアまたは非アラビア文字を持っている場合はそれぞれ4行を確認し、それに応じてラインをフォーマットする必要があります

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="مرحبا \n Hello \n مرحبا" 
    android:textDirection="anyRtl" /> 

APIレベルが古い場合は、手動でユニコード\ u200Fをrtlレイアウトを作成する行に追加することができます。

+0

これは機能します。唯一のポイントは、属性textDirectionがAPIレベル17+でのみ使用されていることです。古いものの回避策はありますか? – EmJiHash

+0

私の編集を確認し、古いAPIレベルの解決策を提示しました。それを試してみて、それがあなたのために働くかどうかを報告してください:) – babadaba

+0

RTLであるべきかどうかはわかりません!これは、ユーザーが提供するコンテンツに完全に基づいています。これは、完全にLTR言語であっても、完全にRTLであってもよい。または、両方の別々の行の組み合わせかもしれません。ここでは私たちの問題です... – EmJiHash

関連する問題