2016-07-02 2 views
0

내 다국어 앱에서 RTL 또는 LTR 중 첫 번째 문자를 기준으로 TextView의 텍스트 방향을 처리합니다. 따라서 중력도 그에 따라 설정됩니다. 단일 TextView의 여러 라인이 각각의 텍스트 방향 및/또는 중력을 가지기를 바랍니다.textView의 다른 행에 다른 텍스트 방향

Multi directional Text View

내가 이것을 어떻게 달성해야합니까?

업데이트 : 대답

으로 babadaba, TEXT_DIRECTION_ANY_RTL 정확히 내가 원하는 것을 좋아한다. 코멘트의 설명은 다음과 같습니다.

텍스트 방향이 "any-RTL"알고리즘을 사용하고 있습니다. 강력한 RTL 문자가 포함 된 단락 방향은 RTL이고, 그렇지 않으면 LTR 문자가 포함 된 경우 단락 방향은 LTR입니다. 어느 쪽도 아닌 경우, 단락의 방향은 뷰의 해결 된 레이아웃 방향입니다.

이제 17 세 이전 API 수준에서 ANY_RTL을 구현하는 방법이 궁금합니다.

답변

2

은 다음과 같이 당신의 텍스트 뷰 만들기 : 그것은 강한 아랍어 또는 비 아랍어 문자가있는 경우 네 개의 각 라인을 확인하고 그에 따라 선을 포맷해야

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

.

이전 API 레벨의 경우 rtl 레이아웃을 원하는 행에 유니 코드 \ u200F를 수동으로 추가 할 수 있습니다.

+0

작동합니다. 유일한 점은 textDirection 속성이 API 레벨 17 이상에서만 사용된다는 것입니다. 오래된 것들에 대한 모든 해결 방법? – EmJiHash

+0

편집을 확인하고 이전 API 레벨에 대한 해결책을 제공했습니다. 그것과 당신을 위해 일하는 경우보고하십시오 : – babadaba

+0

그건 내가 어떤 라인 RTL 또는 해야하는지 아니에요! 그것은 완전히 사용자가 제공 한 콘텐츠를 기반으로합니다. 그것은 완전히 LTR 언어이거나 완전히 RTL 일 수 있습니다. 아니면 여기에있는 우리의 문제 인 두 줄의 조합이 될 수도 있습니다 ... – EmJiHash

관련 문제