我正在编写一个颤动应用程序(使用手势检测器),并且想要更改滑动区域或禁用手表上的顶级滑动,从而将表盘拖到应用程序上(也可以使用其他解决方案,例如我可以使用的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),或者在必要时将其禁用(因为您仍然可以按按钮退出)。
答案 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>
请注意,还建议您在首次运行时通过活动指示用户按硬件电源按钮退出。