17

I set android:supportsRtl="true" in the <application> tag in AndroidManifest.xml, but I need to force one of the views to be left-to-right (LTR) nonetheless, even when the language of the interface is Hebrew or Arabic. How can I force a specific view to be LTR in an RTL application?

Specifically, I want to force some linear layout to go left-to-right instead of the default right-to-left even when the language is right-to-left.

4 Answers 4

24

Generally gravity="left" is enough to force text to be left-to-right. But it didn't help with the direction of a linear layout. The solution was to add android:layoutDirection="ltr".

0
4
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layoutDirection="ltr">

for letf to right all layout content.

4

To complete the answers, aside from XML, layout direction can also be changed programmatically with ViewCompat.setLayoutDirection(view, LayoutDirection.RTL). This API can be used from API 19 and onwards, so If your min sdk version supports API below 19, an if-check needs to be performed:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            ViewCompat.setLayoutDirection(...)
3

If you want to force your application to LTR even on RTL languages you don't need layout direction (it works on an API level greater than 17) you can just set android:supportsRtl to false.

2
  • API level 17 is Android 4.1 (Jelly Bean) (2012 vintage). Is that right? Commented Nov 21, 2023 at 23:56
  • @PeterMortensen based on your link it's 4.2:D Commented Nov 24, 2023 at 11:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.