ui-jakob
ui-jakob

Reputation: 427

How to disable the android wear back swipe?

I am creating a Android Wear app that has an touch area. The user is suppose to be able to move it's finger in all directions over the screen (Think touchpad on your laptop). However the back swipe makes this a bit problematic. Any help with getting around this issue would be a great help.

How to disable the android wear back swipe?

/Jakob

Upvotes: 20

Views: 15008

Answers (3)

simba
simba

Reputation: 1

If you want the whole app to override Swipe, place the theme property under your Manifest's <application> tag. If you want it to apply only to a certain activity, then place the property under that activity's <activity> tag.

So:

  1. create or update styles.xml in the res/values folder with the android:windowSwipeToDismiss property, such as:

    ... false

  2. If you want to override swipe in the whole app, Update your Manifest as such:

    <application
            ...
            android:theme="@style/AppTheme">
  1. If you want to override swipe in a specific activity, Update your Manifest as such:

        <activity
            ...
            android:theme="@style/AppTheme">
        </activity>
    

where ... represents all your other settings you already have. Remember you will need to give alternative ways out of the activity and/or app depending on which level you overrode

Upvotes: 0

elifekiz
elifekiz

Reputation: 1506

You can try to write AndroidManifest.xml theme

android:theme="@style/Theme.Wearable.Modal inside activity tag

<activity
            android:name="com.smart.remote.wear.MainActivity"
            android:label="@string/app_name"
            android:theme="@style/Theme.Wearable.Modal">

Upvotes: 9

Maciej Ciemięga
Maciej Ciemięga

Reputation: 10713

There is an attribute in window style to disable this behavior:

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

Once you disable it you have to provide other way of exiting your app.
There is a DismissOverlayView class (listed here https://developer.android.com/training/wearables/apps/layouts.html#UiLibrary) that you should use instead.
Basically it provides an overlay that will show a red button with cross after a long press. Clicking the red button will exit your app.
enter image description here

Here is a video from Google I/O 2014 with some bookmarked moments:
https://www.youtube.com/watch?v=sha_w3_5c2c#t=1390 <- disabling android:windowSwipeToDismiss
https://www.youtube.com/watch?v=sha_w3_5c2c#t=1505 <- Java code for DismissOverlayView

You can also check another video called:
Fullscreen apps for Android Wear:
https://www.youtube.com/watch?v=naf_WbtFAlY

Upvotes: 37

Related Questions