Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更改所有应用程序设计以支持RTL_Android_Xml_Android Layout_Right To Left - Fatal编程技术网

Android 更改所有应用程序设计以支持RTL

Android 更改所有应用程序设计以支持RTL,android,xml,android-layout,right-to-left,Android,Xml,Android Layout,Right To Left,在我的应用程序中,我希望支持RTL布局方向以支持阿拉伯语。使用以下函数 private void forceArabicLanguage() { Locale locale = new Locale("ar"); Configuration newConfig = getResources().getConfiguration(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)

在我的应用程序中,我希望支持RTL布局方向以支持阿拉伯语。使用以下函数

  private void forceArabicLanguage() {
    Locale locale = new Locale("ar");
    Configuration newConfig = getResources().getConfiguration();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
      newConfig.setLocale(locale);
    else
      newConfig.locale = locale;
    Locale.setDefault(locale);
    getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
  }
添加
android:supportsRtl=“true”后,我可以根据语言和布局成功更改配置和读取字符串
到清单中的
应用程序
到目前为止,所有东西都正常工作,但在我的设计xml中,我将每个项目的重力设置为右或左,然后才希望支持RTL,因此现在的设计不会完全根据重力进行更改。


我的问题是:是否有任何配置可以更改所有重力或将所有xml更改为RTL方向,而无需在值ar下创建另一个资源布局?还是必须改变它?感谢您的帮助

使用“开始”和“结束”代替“左”和“右”作为重力。
这将考虑RTL支持。在LTR中,将保留start。在RTL(阿拉伯语)中,“开始”是正确的

请注意,这些重力是在api 17中添加的。
要支持早期版本,您应该:
-在XML中定义开始和结束。

-以编程方式使用GravityCompat.START和GravityCompat.END

代替“左”和“右”作为重力,使用“开始”和“结束”。
这将考虑RTL支持。在LTR中,将保留start。在RTL(阿拉伯语)中,“开始”是正确的

请注意,这些重力是在api 17中添加的。
要支持早期版本,您应该:
-在XML中定义开始和结束。
-以编程方式使用GravityCompat.START和GravityCompat.END