2017-09-11 26 views
5

Przeszedłem przez wiele rozwiązań, ale nie rozumiem, jak wykonać wsparcie projektowe dla RTL przy użyciu ConstraintLayout w systemie Android.Android: Obsługa ConstraintLayout RTL

+2

Use „start” i „end” ograniczenia zamiast „lewy” i „prawy” ograniczenia (np. 'layout_constraintEnd_toStartOf'), tak samo jak w przypadku' RelativeLayout'. – CommonsWare

Odpowiedz

13

Wystarczy zastąpić ograniczenia z Left do Start & Right do End,

app:layout_constraintLeft_toRightOf = layout_constraintStart_toEndOf 
app:layout_constraintRight_toLeftOf = layout_constraintEnd_toStartOf 
app:layout_constraintLeft_toLeftOf = layout_constraintStart_toStartOf 
app:layout_constraintRight_toRightOf = layout_constraintEnd_toEndOf 

Jestem pewien, że to nie działa idealnie dla Ciebie,

Zobacz moją Paradigmitem_list.xml

LTR Screenshot

English

RTL Zrzut

RTL

Uwaga: Mam nadzieję, że już dodane tę linię android:supportsRtl="true" w AndroidManifest.xml & niektóre umieszczone trzeba usunąć właściwość TextAlignment. Wyrównanie z pewnością zadziała z tekstem Arabski.

+0

wydaje się działać, ale nie używam żadnej właściwości 'textAlignment' nadal pokazuje mi tekst po lewej stronie dla ** RTL ** –

+0

Ohh ładny komentarz po ustawieniu ** arabski ** tekst na' TextView' ustawi się automatycznie z Od prawej do lewej, ale upewnij się, że nie ustawisz stałej szerokości w dowolnym miejscu. –

1

zrobić następujące rzeczy,

  1. Znajdź & Wymień Left z Start
  2. Znajdź & zastąpić Right z End

Jeśli używasz leftDrawing lub rightDrawing nadal trzeba zastąpić ją startDrawing & endDrawing

samo dla dopełnienia też

i nie zapomnij dodać następującą linię w AndroidManifest pliku

android:supportsRtl="true"