我正在爲從右到左的特定語言創建一個Android應用程序。我使用ActionBarSherlock(兼容的Android操作欄庫)。
我確切需要的是如何將操作欄的方向更改爲RTL,即使用戶未將缺省Locale設置爲RTL語言。
如果任何人有一個想法,即使是標準的安卓操作欄它是有價值的,可能會幫助請分享它。
謝謝將動作欄方向更改爲從右到左
回答
我相當肯定你不能做你在問什麼。 ActionBar模式非常具體,支持它的庫只支持定義的模式(在左上角有圖標,然後在右側放置標題和動作按鈕)。
更改測試與更改應用中的語言環境和文本一樣簡單(正如您已經提到的那樣)。
支持標準ActionBar模式的庫不支持更改ActionBar內部元素的位置 - 因爲您描述的不是受支持的UI模式。
我想你應該離開AB原樣。沒有必要切換訂單,因爲無論如何都沒有左右定位 - 並且改變這一點對您的用戶來說會非常棘手。底線,你將無法對現有的庫進行這種操作 - 而且你也許不應該這樣做。
從Android API級別17+它本身支持RTL。要強制你的整個佈局是包括ActionBar在內的RTL,請執行以下操作。
編輯AndroidManifest.xml中添加android:supportsRtl="true"
您<application>
標記,然後將下面的行添加到您的活動的onCreate的頂部()方法forceRTLIfSupported();
然後將後續功能爲您的活動。
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void forceRTLIfSupported()
{
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
}
}
當然這隻對調試很有幫助。使用View.LAYOUT_DIRECTION_LOCALE
進行生產構建,因此只有當用戶選擇的系統位置/語言(即語言環境)支持RTL時,纔會更改佈局。
希望有所幫助。
Booger是對的。您提到的「Nabz Bazar」應用程序在每個版本的Android上都沒有對齊。正如你所看到的here ABS在Android 4.0或更新版本上並沒有真正做任何事情,並且該應用程序的屏幕截圖在4.2安卓版上。
我們必須相信編程功能強大的規則:當你知道你的工具
一切都將成爲可能。
所以,從現在開始你可以使用這個庫真正RTLize您爲其他動作: https://github.com/semsamot/ActionBarRTLizer
當然它是與API等級7+兼容。
*無法解析符號'ActionBarRtlizer'*(我想你忘了提及我們應該導入什麼來解決這個問題) –
利用這一點,這將是從RTL進行佈局,但你的XML這個在父母根
android:layoutDirection="rtl"
android:textDirection="rtl"
- 1. Aspx將頁面方向更改爲從右到左
- 2. 在Pyocr中將文本方向從左到右更改爲
- 3. 在FPDF中將頁面方向更改爲從右到左
- 4. 將LinearLayout更改爲從左到右
- 5. 如何更改新聞速遞運動方向從左到右
- 6. 如何從右向左更改滾動條的方向?
- 7. 如何在HorizontalScrollView中從右向左更改滾動方向
- 8. wxWidgets從右到左方向
- 9. 如何將ShowMessageAsync流向更改爲「從右向左」?
- 10. UIViewAnimationTransitionCurlUp從橫向(左和右)方向從右到左
- 11. 如何將fancybox滾動更改爲從左到右?
- 12. 在通用Windows項目中將樞軸方向更改爲從右到左
- 13. 從右向左動畫UIView方向,iPhone
- 14. 更改組織結構圖的方向從左到右
- 15. 更改HTML <title>標籤的方向從右到左
- 16. 在Splitviewcontroller中將Masterview的位置從左向右更改爲
- 17. 如何從右向左更改輸入文本方向
- 18. 從左到右移動邊欄
- 19. 向左或向右滑動並從左上角滑動更多
- 20. 如何改變我的Vticker默認方向(向上滑動)到從右到左
- 21. 如何在Android中將圖像從左到右從右向左移動?
- 22. ExtJS的面板方向 - 從右到左
- 23. 梯度方向從左到右
- 24. delphi TActionMainMenuBar方向從右到左
- 25. Ext.NET TextField的從右到左方向
- 26. WPF輸入方向從右到左
- 27. 將char數組從左向右移動
- 28. iOs將動畫從左向右(水平)
- 29. jCarousel從右向左滾動
- 30. 從左向右滑動Div
你找到解決辦法嗎? –
我還沒有找到一個好的解決方案,但我還沒有測試'semsamot'關於'RTLizer'的解決方案。 如果您測試過,請告訴我相關信息。謝謝。 – Aliaaa