【问题标题】:Android Wear watchface StatusBarGravity Bottom not respectedAndroid Wear 表盘 StatusBarGravity 底部不受尊重
【发布时间】:2017-05-22 18:22:25
【问题描述】:

我正在为 Android Wear 制作表盘。我想将状态栏放在底部而不是顶部。

文档声明使用WatchFaceStyle.BuildersetStatusBarGravity()-方法:https://developer.android.com/reference/android/support/wearable/watchface/WatchFaceStyle.Builder.html#setStatusBarGravity(int)

但是,这似乎没有按预期工作。每当我使用Gravity.BOTTOM 时,图标都会在表盘内垂直居中,而不是位于底部。

这是我使用的代码:

setWatchFaceStyle(new WatchFaceStyle.Builder(Watchface.this)
                .setShowUnreadCountIndicator(true)
                .setStatusBarGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM)
                .setAcceptsTapEvents(true)
                .build());

导致这种情况(注意中间的充电指示灯)

我做错了什么?我用谷歌搜索过,但找不到任何相关信息。

【问题讨论】:

标签: android wear-os watch-face-api android-wear-2.0 watchface


【解决方案1】:

恐怕您所看到的Gravity.BOTTOM 位置。状态栏图标的位置非常通用,底部对齐略低于实际垂直中心,而Gravity.CENTER_VERTICAL 大约是屏幕的三分之一。

以下是三个重力值的图标位置细分:

请记住,圆形屏幕不尊重水平重力值。

我知道这很令人沮丧,但恐怕就是这样。我建议在 b.android.com 提交问题以改变这种行为。

【讨论】:

  • 顺便说一下,我相信这种行为是来自 Android Wear 1.0 的现已过时的偷看通知的残余。最初,表盘可以让通知卡从屏幕底部偷看。因此,系统图标可能不会与屏幕底部对齐。现在setAmbientPeekMode() 已被删除,我希望图标的位置可以很快得到更精细的控制。
【解决方案2】:

确保竖线之间没有空格 分隔符和重力常量,因为编译器会将其视为多个参数,而不是一个“统一”的重力连接参数。

请参阅documentation 中的“构建您的表盘:使用 .setWatchFaceStyle()”了解更多信息。

【讨论】:

  • 这是我以前从未听说过的。管道字符只是一个按位或,它将重力常数组合成一个整数,对吗?无论如何,我试过了,它没有用。这是我所期望的,因为我也尝试了没有 Gravity.CENTER_HORIZONTAL 的 Gravity.BOTTOM。不过,感谢您的输入!任何帮助表示赞赏。
猜你喜欢
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多