【问题标题】:Developing a right-to-left Android application开发从右到左的 Android 应用程序
【发布时间】:2016-05-03 23:25:09
【问题描述】:

我正在开发一个相对简单的 Android 应用程序。我希望它有英文版和希伯来文版。

我有一个活动全部用英语布置,我想创建希伯来语资源。我找不到任何简单的方法来做到这一点。我发现的唯一方法是获取我的 layout/activity.xml 文件,将其放入 layout-iw/activity.xml 并手动更改所有内容,使其从右到左显示。

我需要颠倒任何水平方向容器中所有元素的顺序(<TableRow>s 中的所有列,水平<LinearLayout>s 中的所有元素等...)。我需要用 layout_marginRights 切换所有 layout_marginLefts,当然 - 使所有左对齐控件右对齐。

这很乏味,尤其是当我考虑在某个时候修改活动时 - 我需要修改资源两次,仅此一项就让我头疼。

必须有一个更简单的方法。

【问题讨论】:

  • 如果所有其他方法都失败了,我的下一个问题将是关于挂钩的适当位置,该机制将自动执行此操作。我想我会称之为 RtlAwareActivity 什么的。我真的不想写这个。
  • 我不怀疑会有一个打包的解决方案来解决这个问题,因为这种变化可能会产生很多布局问题,一般来说就是这样。因此,为此提供多合一的解决方案并不安全。我相信 TextViews 会自动从右到左呈现,但仅此而已。 FWIW,我认为您最好使用预编译钩子生成布局 xml,而不是编写一个活动来动态完成。这样就没有运行时开销。
  • 我是微软的专业人士,但无论如何他们在 WPF 上做得非常好!!!。

标签: android right-to-left


【解决方案1】:

不幸的是,您是正确的,这正是您必须要做的。 我建议使用styles 格式化任何需要更改填充或边距的元素,以从左到右文本切换。如果您正确构建样式,则应限制单个布局文件中所需的逐行更改量。但是我确实意识到这是后站点为 20/20 的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多