4

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

文档声明使用setStatusBarGravity()- 方法WatchFaceStyle.Builderhttps://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());

这导致了这个(注意中间的充电指示灯)

图像

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

4

2 回答 2

2

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

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

Wear OS 的重力值

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

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

于 2019-01-29T16:25:47.853 回答
-2

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

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

于 2017-05-23T12:12:42.097 回答