2016-01-20 40 views
8

我正在使用API​​ 17,我正在尋找一種方法將整個應用程序設置爲rtl,而不是在每個活動佈局中使用<android:layoutDirection="rtl">如何設置整個應用程序的方向爲RTL?

+0

你可以嘗試設置'安卓的''標籤內的AndroidManifest.xml supportsRtl = TRUE;。 – PattaFeuFeu

+4

@ PattaFeuFeu:只會在OS語言爲rtl的情況下更改方向。即使操作系統爲LTR – mdehghani

回答

5

我有同樣的問題,所有你需要做的就是考慮所有使用父容器(LinearLayoutRelativeLayoutGridView等)並將LayoutDirection設置爲RTL,您可以通過編程方式以這種方式進行操作,這要歸功於ViewCompat類包含低於17的api。

ViewCompat.setLayoutDirection(yourParentContainer,ViewCompat.LAYOUT_DIRECTION_RTL);

注意,沒有必要設置方向childviews分別

+0

thx,我也要更改方向。我猜這是訣竅。 – mdehghani

1

,請以Android開發者這個文本中提取博客:

要利用RTL佈局鏡像,只需進行以下 更改您的應用程序:

1-申報應用清單是你的應用程序支持RTL鏡像。 具體而言,將android:supportsRtl =「true」添加到清單文件中的 元素。

2-將所有應用程序的「左/右」佈局屬性更改爲新的 「開始/結束」等效項。如果您的應用的目標應用爲Android 4.2 (應用的targetSdkVersion或minSdkVersion爲17或更高),則應使用「開始」和「結束」而不是「左側」和「右側」。例如,對於 示例,android:paddingLeft應該成爲android:paddingStart。

如果你希望你的應用程序與之前版本的工作比Android 4.2 (應用程序的targetSdkVersion或的minSdkVersion是16或更低),那麼你 應該加上「開始」和結束」除了‘左’和「右」。例如,對於 示例,您將同時使用android:paddingLeft和android:paddingStart。

全文可以在這裏找到:

http://android-developers.blogspot.ca/2013/03/native-rtl-support-in-android-42.html

相關問題