Android Wear watchface StatusBarGravity Bottom 不受尊重

Android Wear watchface StatusBarGravity Bottom not respected

我正在为 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());

结果是这样(注意中间的充电指示器)

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

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

有关详细信息,请参阅此 documentation 中的“构建您的表盘:使用 .setWatchFaceStyle()”。

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

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

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

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