我正在创建一款具有触摸区域的Android Wear应用程序。用户应该能够在屏幕上各个方向上移动手指(类似于笔记本电脑上的触摸板)。但是,后退滑动会使这变得有些棘手。如何解决这个问题?希望得到帮助。
如何禁用Android Wear的后退滑动?
/ Jakob
我正在创建一款具有触摸区域的Android Wear应用程序。用户应该能够在屏幕上各个方向上移动手指(类似于笔记本电脑上的触摸板)。但是,后退滑动会使这变得有些棘手。如何解决这个问题?希望得到帮助。
如何禁用Android Wear的后退滑动?
/ Jakob
在窗口样式中有一个属性可以禁用这种行为:
<style name="AppTheme" parent="@android:style/Theme.DeviceDefault.Light">
<item name="android:windowSwipeToDismiss">false</item>
</style>
一旦您禁用它,您必须提供其他退出应用的方式。
有一个DismissOverlayView
类(在此处列出: https://developer.android.com/training/wearables/apps/layouts.html#UiLibrary),您应该使用它。
基本上,它提供了一个叠加层,长按后会显示一个带有红色叉号按钮的界面。 点击红色按钮将退出您的应用程序。
这是Google I/O 2014年的视频,其中包含一些书签时刻:
https://www.youtube.com/watch?v=sha_w3_5c2c#t=1390 <- 禁用android:windowSwipeToDismiss
https://www.youtube.com/watch?v=sha_w3_5c2c#t=1505 <- DismissOverlayView
的Java代码
您还可以查看另一个视频:
Android Wear全屏应用:
https://www.youtube.com/watch?v=naf_WbtFAlY
您可以尝试编写AndroidManifest.xml主题
在activity标签内添加android:theme="@style/Theme.Wearable.Modal"
<activity
android:name="com.smart.remote.wear.MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.Wearable.Modal">
如果您想要整个应用程序覆盖Swipe,请将主题属性放置在Manifest的<application>
标签下。如果您只想将其应用于某个活动,则将该属性放置在该活动的<activity>
标签下。
所以:
在res/values文件夹中创建或更新styles.xml
,并添加android:windowSwipeToDismiss属性,例如:
... false
如果您想要覆盖整个应用程序中的Swipe,请更新您的Manifest如下:
<application
...
android:theme="@style/AppTheme">
<activity
...
android:theme="@style/AppTheme">
</activity>
其中...代表您已经拥有的所有其他设置。请记住,根据您覆盖的级别,您需要提供活动和/或应用程序的替代方法。