三星开始在其最新的智能 watch 中使用 WearOS,例如在 Galaxy 4 watch 中,我需要测试边框功能,因为后者确实具有该功能。不过我在 AVD 中没有发现任何支持边框的 WearOS 设备。
我还尝试创建新的硬件配置文件,但也没有找到边框选项。他们拥有的所有导航选项如下。它们都与边框无关。
我也尝试过为 Galaxy 4 寻找皮肤,但到目前为止还没有成功。根据 Galaxy4 用户的说法,以下代码不起作用。您当然可以建议如何修复代码,但我仍然想知道如何在不购买 watch 的情况下测试它
view.setOnGenericMotionListener { v, ev ->
if (ev.action == MotionEvent.ACTION_SCROLL &&
ev.isFromSource(InputDeviceCompat.SOURCE_ROTARY_ENCODER)
) {
val delta = -ev.getAxisValue(MotionEventCompat.AXIS_SCROLL) *
ViewConfigurationCompat.getScaledVerticalScrollFactor(
ViewConfiguration.get(this), this
)
if (Math.abs(delta) > 2f) {
val np = if (delta > 0) Util.nextAccount(mAccount) else Util.prevAccount(mAccount)
Util.d(TAG, mAccount + np.toString())
switchAccount(np)
}
true
} else {
false
}
}
nextAccount 和 prevAccount 是一些切换 View 的自定义函数。它们都不是根据用户调用的。
这是一个 Tizen Studio 模拟器,其边框可以通过拖动白点来旋转:
最佳答案
我终于解决了这个问题。在应该处理旋转事件的 View 布局中,我添加了 requestFocus 标签:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="vertical"
android:fadeScrollbars="false"
android:id="@+id/token_scroll"
>
<requestFocus />
...
为了测试边框,我使用了模拟器右侧的菜单,如下图所示。至少在模拟器中可以正确处理边框事件。当收到用户的反馈后,我会告诉您它是否适用于真正的 Galaxy 4 智能 watch 。
更新 一位 Galaxy 4 智能 watch 用户刚刚确认修复后边框可以正常工作。它证实修复和测试方法都是正确的并达到了目的。
关于wear-os - 如何向 WearOS 模拟器添加边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69020020/