10

I know that we can display multiple languages support for our android application with different values folder example values-en , values-ar.

My question is can we change our layout style when there is change of language.

As in English every thing starts form "left -to right" however Arabic is just apposite of it . so is it possible to place a image on left when language selected is English and Change the layout when language changes to Arabic

4

3 回答 3

18

应用程序的布局方向。ldrtl意味着"layout-direction-right-to-left"ldltr表示"layout-direction-left-to-right"并且是默认的隐式值。

这可以应用于任何资源,例如layouts, drawables、 或values

例如,如果您想Arabic language为任何其他“从右到左”语言(如波斯语或希伯来语)提供一些特定布局和一些通用布局,那么您将拥有:

res/
layout/   
    main.xml  (Default layout)
layout-ar/  
    main.xml  (Specific layout for Arabic)
layout-ldrtl/  
    main.xml  (Any "right-to-left" language, except
              for Arabic, because the "ar" language qualifier
              has a higher precedence.)

注意:要为您的应用启用right-to-left布局功能,您必须设置supportsRtl"true"set targetSdkVersion to 17 or higher.

于 2013-09-05T05:37:53.517 回答
2

当语言发生变化时,我们可以改变我们的布局风格吗?

是的。您可以根据用户选择的语言提供不同的布局。这在提供资源文档中有明确的描述。

事实上,提供了一个特定的布局限定符来支持从右到左的语言,称为res/layout-ldrtl.

PS:仅 API 17 支持此属性。

于 2013-09-05T05:19:48.267 回答
0

添加特定方向和特定语言的资源

此步骤涉及添加特定版本的布局、可绘制对象和值资源文件,其中包含针对不同语言和文本方向的自定义值。

在 Android 4.2(API 级别 17)及更高版本中,您可以使用 -ldrtl (layout-direction-right-to-left) 和 -ldltr (layout-direction-left-to-right) 资源限定符。为了保持与加载现有资源的向后兼容性,旧版本的 Android 使用资源的语言限定符来推断正确的文本方向。

假设您要添加特定布局文件以支持 RTL 脚本,例如希伯来语、阿拉伯语和波斯语。为此,您需要在 res/ 目录中添加一个 layout-ldrtl/ 目录,如下例所示:

res/
    layout/
        main.xml //This layout file is loaded by default.
    layout-ldrtl/
        main.xml //This layout file is loaded for languages using an
                 //RTL text direction, including Arabic, Persian, and Hebrew.

如果您想添加专为阿拉伯文本设计的特定版本的布局,您的目录结构如下:

res/
    layout/
        main.xml //This layout file is loaded by default.
    layout-ar/
        main.xml //This layout file is loaded for Arabic text.
    layout-ldrtl/
        main.xml //This layout file is loaded only for non-Arabic
                 //languages that use an RTL text direction.

注意:特定于语言的资源优先于特定于布局方向的资源,后者优先于默认资源。

于 2019-01-19T08:14:52.683 回答