2016-07-05 91 views
1

我有一個包含英文和波斯文的字符串。我希望如果一行以波斯語字符開頭,那麼這行在文本視圖中從右向左移動,如果一行以英文字符開頭,則這行將從左向右排列。如何在android textview中設置每條線的重力?

注意:我想爲文本視圖中的每一行設置重力/方向。

如何在android textview中實現它。

這是我的TextView XML代碼:

<TextView 
     android:id="@+id/textViewContent" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentRight="true" 
     android:autoLink="web" 
     android:layoutDirection="rtl" 
     android:gravity="start" 
     android:layout_gravity="start" 
     android:text="My Text" 
     android:textColor="#000" 
     android:textDirection="rtl" /> 
+0

可能的重複[根據語言選擇(LEFT-RIGHT)]對齊textview(http://stackoverflow.com/questions/14728604/align-textview-according-to-the-language-selection-left-right ) –

+0

@AmitVaghela我更新了我的問題和解答。 –

+0

你可以拆分你的文本,並分別在自己的'TextViews'中顯示英文和波斯文本部分嗎?這似乎是最簡單的解決方案恕我直言。 – artkoenig

回答

1

可以使用的TextView的屬性來對齊文本內容。

Allign文本佈局中的左

android:gravity="start" 

Aliign文本向右佈局。

android:gravity="end" 
+0

我添加了我的textview xml代碼。我想爲每條線設置重力。 –

0

使用這樣

  if (textview.contentEquals("persian")) { 
       textview.setGravity(Gravity.START); 
      } else if (textview.contentEquals("english")) { 
       textview.setGravity(Gravity.END); 
      } 
+0

我想爲每行設置重力,而不是爲textview設置重力。 –

+0

然後將重力設置爲佈局或視圖,其過程與textview相同。 –

+0

假設你的線性佈局有3行textview,然後只需設置layout.setGravity(Gravity.start); –

0

我想你可以嘗試使用spannable和路線特性:

Alignment.ALIGN_OPPOSITE(右)和Alignment.ALIGN_NORMAL(左)。

檢查這個答案:Multiple alignment in TextView?

3

你所尋找的是被添加到您的文本視圖

android:textDirection="anyRtl" 

ANY_RTL文字方向,你會得到這樣的結果:

enter image description here

考慮到它是一個API17 +解決方案。