2016-08-02 52 views
4

我已經在這個崗位嘗試了一切:Android RTL password fields?RTL密碼字段的Android

但沒有什麼幫助了我。

問題:當用戶的語言環境是阿拉伯語(RTL)時,我希望他在用他的語言輸入密碼時感到舒適。但是,當我將inputType指定爲textPassword時,無論我分配什麼,它都不起作用,並強制它變爲LTR。

我試過指定gravity,textAlignment,layoutDirection,我甚至用編程方式試過,但沒有任何工作。

除了密碼之外,其他所有文本字段都可以正常工作。有沒有解決這個bug /問題的方法?

回答

6

我到這裏來說服你停止尋找答案。真正很少有人使用阿拉伯字符(有時甚至是用戶名)來設置他們的密碼。這是因爲大多數密碼系統在處理非拉丁字符方面非常糟糕。這些系統通常假定密碼是ASCII而不是Unicode,特別是舊的DB系統。此外,請記住,有時用戶發現某些困難將鍵盤切換到另一種語言佈局。這個問題以前發生在Windows登錄很久以前。

這些歷史和慢性兼容性問題阻止了大多數人在他們的密碼中使用非拉丁字符。我已經足夠生活,處理了很多不同的人(真的很多人......沒有電腦技能的人,在阿拉伯語界面使用設備的人,沒有英語的人......等等),我仍然沒有聽到有人設置過他的阿拉伯字符的密碼...不是在90年代末甚至沒有這個時代。由於大多數用拉丁字符設置他們的密碼,我相信所有的登錄界面都應該在LTR中「佈局」,並且保持對齊。

另一件事密碼字段將文本轉換爲星號,所以從右到左的開始和從左到右的開始沒有區別(可惜標記不支持對齊,所以請點擊運行) :

<p align="right">******</p> 
 
<p align="left">******</p>

More technical info here

+0

我已經強迫用戶用英文輸入他的密碼。感謝您的解釋' –

+0

現在這是正確的答案 –

0

你試過以下?:

XML:

android:ellipsize="end" 

的Java:

textview.setTextDirection(View.TEXT_DIRECTION_RTL); 

textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL); 
+1

不,它仍然不起作用。 –

1

您可以設置左到右(LTR)或向右根據您的語言左(RTL)的文本對齊(阿拉伯語,烏爾都語或英語)只需將一個屬性設置爲Edittext XML文件:

android:inputType="textPassword" 
android:textAlignment="viewStart"