【问题标题】:How to disable flipping of the "up" button on the action bar?如何禁用操作栏上“向上”按钮的翻转?
【发布时间】:2014-03-24 06:28:30
【问题描述】:

背景

我制作了一个“app manager”替代应用,我希望添加 RTL(从右到左)语言的翻译。

由于我知道从某些 Android 版本开始,为了让单词和句子正确对齐,事情发生了翻天覆地的变化,我决定先切换到这种语言,然后继续翻译

问题

切换到 RTL 语言(在我的例子中是希伯来语)后,我发现操作栏的向上按钮有“

所以现在它显示“>”。

问题

我该如何解决?这样看是没有意义的……

【问题讨论】:

  • 但在幕后它已经在使用图像。此外,我不想覆盖默认图像。

标签: android android-actionbar right-to-left


【解决方案1】:

对我有用的是让系统使用默认主题,而不是指定 Holo。如果您可以忍受,向上按钮的方向将正确。不幸的是,如果您当然使用 AppCompat,则无法做到这一点。 更烦人的是:向上按钮的翻转是特定于设备的。它发生在三星设备上,但不在谷歌设备上。 supportsRtl 标志仅适用于 API 17 及更高版本,因此无法修复较旧的三星手机。 问题显然是三星设备上的 Holo 实现。翻转图标时要小心,因为在 Google 手机上它会翻转错误。

看到这个:https://code.google.com/p/android/issues/detail?id=68476

【讨论】:

  • 所以它比我想象的还要复杂。无论如何,最后我决定让操作系统自行决定。你会因为你所写的内容而获得 +1。
【解决方案2】:

好吧,您可以通过调用Resources.getIdentifierView.findViewById 来访问ActionBar“向上”功能。之后你可以旋转它。

    final int upId = getResources().getIdentifier("up", "id", "android");
    final View up = findViewById(upId);
    // Call this to just rotate the icon 180°
    if (getResources().getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
        up.setRotation(180f);
    }

【讨论】:

  • 我为什么要为它制作动画?
  • 把它翻过来?我添加了一个 gif。
  • 但我不想翻转它。我想避免翻转。翻转会自行发生,因为它是一种 RTL 语言...
  • 那么大多数 Google 的应用程序并不完全支持 RTL 布局,但 Play Newsstand 支持,这并不意味着您的应用程序应该是一样的。此外,如果您使用的是 RTL 布局,DrawerLayout 将自动切换到右侧。
  • 看来是这样。也许我看过导航抽屉的早期作品。奇怪的。所以即使是谷歌也没有遵循自己的指导方针并充分利用它们。奇怪的是,谷歌为 newsStand 修复了它,但没有为 Play 商店和它拥有的许多其他应用程序设置任何希伯来语处理......好吧,我想,我只会在清单上将 supportsRtl 设置为 true 而不用担心动作栏了。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-12
相关资源
最近更新 更多