2014-07-16 7 views
15

Tworzę aplikację Android Wear z ekranem dotykowym. Użytkownik powinien mieć możliwość przesuwania palca we wszystkich kierunkach na ekranie (Think touchpad na laptopie). Jednak przesunięcie w tył sprawia, że ​​jest to trochę problematyczne. Każda pomoc w obchodzeniu się z tym problemem byłaby bardzo pomocna.Jak wyłączyć funkcję przeciągania z Androidem?

Jak wyłączyć funkcję machania systemem Android?

/Jakob

Odpowiedz

24

Jest to atrybut w oknie stylu wyłączyć to zachowanie:

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

Kiedy go wyłączyć trzeba zapewnić inny sposób zamykania aplikacji.
Jest klasa DismissOverlayView (wymieniona tutaj https://developer.android.com/training/wearables/apps/layouts.html#UiLibrary), której należy użyć zamiast tego.
Zasadniczo zapewnia nakładkę, która po długim naciśnięciu będzie wyświetlać czerwony przycisk z krzyżykiem. Kliknięcie czerwonego przycisku spowoduje zamknięcie aplikacji.
enter image description here

Oto film z Google I/O 2014 z kilkoma zakładkami momentach:
https://www.youtube.com/watch?v=sha_w3_5c2c#t=1390 < - wyłączenie android:windowSwipeToDismiss
https://www.youtube.com/watch?v=sha_w3_5c2c#t=1505 < - kod Java dla DismissOverlayView

Można również sprawdź inne wideo o nazwie:
Aplikacje pełnoekranowe na urządzenia z systemem Android Wear:
https://www.youtube.com/watch?v=naf_WbtFAlY

+0

Dzięki będzie spojrzeć! DismissOverlay może nie działać dla mnie, ponieważ mogę potrzebować również długiego wydarzenia prasowego. Ale dodam jakiś sposób na Odejście. –

+0

Proszę spojrzeć na kod Java na wideo. Używają wywołania zwrotnego GestureDetector i onLongPress(), aby wyświetlić DismissOverlayView, wywołując metodę mDismissOverlay.show(). Możesz wymyślić inny gest i zaimplementować go w ten sam sposób :) Myślę, że nie jest dobrze przesłonić dwa standardowe zachowania wychodzących aplikacji, więc mam nadzieję, że twoje rozwiązanie wyjścia będzie oczywiste dla użytkownika, a nie ukryte gdziekolwiek :) Mogę tylko doradzić ponownie przemyśl dłuższą prasę, przesuwając ponownie, jeśli jest to naprawdę konieczne w twoim przypadku :) Pozdrowienia! –

+0

Myślę, że mogę dodać widoczny przycisk z tego powodu. Ale jeszcze nie zdecydowałem. Ale całkowicie zgadzam się z tobą, że musi to być oczywiste. To niefortunne, że potrzebuję obu domyślnych zachowań. –

4

Można spróbować napisać AndroidManifest.xml Theme

android: theme = "@ styl/Theme.Wearable.Modal wewnątrz znacznika aktywności

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