在Android Wear上禁用或更改表盘滑动区域

时间:2018-10-25 14:23:12

标签: android flutter wear-os android-wear-2.0

我正在编写一个颤动应用程序(使用手势检测器),并且想要更改滑动区域或禁用手表上的顶级滑动,从而将表盘拖到应用程序上(也可以使用其他解决方案,例如我可以使用的Java中)。

该应用程序可以拖动/滑动地图(例如Google Maps),并且可以在手机上正常运行。但是,在手表上,从左向右滑动可将应用程序拖走,让表盘翻过来。

拖动时,此拖动区域似乎占据了手表屏幕的50%以上,这意味着您无法拖动地图,它只是将手表表面拉到上方(因此,您只能将应用的右侧用手指拖动)。我注意到在Google Maps上,只需要左屏幕的大约10%作为拖动区域即可滑动表盘,感觉很好。

我尝试过

Future<bool> _willPopCallback() async {
  print("PoppedCallback");
  return false; //also tried true
}

home: new WillPopScope(
        onWillPop: _willPopCallback,
  child: ....

作为MaterialApp设置的一部分,但这似乎随时都不会触发任何回调,所以我猜该事件与此事件不同吗?

有人有任何想法吗,理想情况下,如何更改默认的Wear滑动区域(类似于Goole Maps),或者在必要时将其禁用(因为您仍然可以按按钮退出)。

1 个答案:

答案 0 :(得分:1)

Wear OS dev docs中,您可以通过以下方式禁用滑动到关闭:

  

您可以扩展默认主题(在样式资源中),并将android:windowSwipeToDismiss属性设置为false:

<resources>
  <style name="AppTheme" parent="@android:style/Theme.DeviceDefault">
    <item name="android:windowSwipeToDismiss">false</item>
  </style>
</resources>

请注意,还建议您在首次运行时通过活动指示用户按硬件电源按钮退出。