Nutzer können eine Wear OS-Aktivität beenden, indem sie von links nach rechts wischen. Wenn horizontales Scrollen möglich ist, schließt der Nutzer den Vorgang, indem er zum Rand navigiert. des Inhalts und wische dann von links nach rechts. Durch Drücken der Ein/Aus-Taste kehrt der Nutzer zum Zifferblatt zurück.
Mit der Wischgeste zum Schließen
Nutzer wischen von links nach rechts, um den aktuellen Bildschirm zu schließen. Aus diesem Grund empfehlen wir Folgendes:
- Vertikale Layouts
- Inhaltscontainer
Wir empfehlen außerdem, dass Ihre App keine horizontale Wischgesten.
Aktivität schließen
Aktivitäten unterstützen automatisch das Schließen durch Wischen. Über eine Aktivität wischen von links nach rechts zum Schließen der Aktivität führt und die App navigiert im nach unten Back-Stack.
Fragment schließen
Damit das Schließen durch Wischen in Fragmenten unterstützt wird, müssen Sie den
die fragmentierte Ansicht enthält.
<ph type="x-smartling-placeholder"></ph>
SwipeDismissFrameLayout
. Dies sollten Sie berücksichtigen
wenn Sie sich für Fragmente entscheiden. Verwenden Sie die Methode
SwipeDismissFrameLayout
, wie im folgenden Beispiel gezeigt:
Kotlin
class SwipeDismissFragment : Fragment() { private val callback = object : SwipeDismissFrameLayout.Callback() { override fun onSwipeStarted(layout: SwipeDismissFrameLayout) { // Optional } override fun onSwipeCanceled(layout: SwipeDismissFrameLayout) { // Optional } override fun onDismissed(layout: SwipeDismissFrameLayout) { // Code here for custom behavior, such as going up the // back stack and destroying the fragment but staying in the app. } } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View = SwipeDismissFrameLayout(activity).apply { // If the fragment should fill the screen (optional), then in the layout file, // in the androidx.wear.widget.SwipeDismissFrameLayout element, // set the android:layout_width and android:layout_height attributes // to "match_parent". inflater.inflate( R.layout.swipe_dismiss_frame_layout, this, false ).also { inflatedView -> addView(inflatedView) } addCallback(callback) } }
Java
public class SwipeDismissFragment extends Fragment { private final Callback callback = new Callback() { @Override public void onSwipeStart() { // Optional } @Override public void onSwipeCancelled() { // Optional } @Override public void onDismissed(SwipeDismissFrameLayout layout) { // Code here for custom behavior, such as going up the // back stack and destroying the fragment but staying in the app. } }; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { SwipeDismissFrameLayout swipeLayout = new SwipeDismissFrameLayout(getActivity()); // If the fragment should fill the screen (optional), then in the layout file, // in the androidx.wear.widget.SwipeDismissFrameLayout element, // set the android:layout_width and android:layout_height attributes // to "match_parent". View inflatedView = inflater.inflate(R.layout.swipe_dismiss_frame_layout, swipeLayout, false); swipeLayout.addView(inflatedView); swipeLayout.addCallback(callback); return swipeLayout; } }
Hinweis:Wenn Sie in Ihrer Aktivität Fragmente verwenden, nutzen Sie
FragmentManager.add
statt
FragmentManager.replace
um die Wischgeste zum Schließen zu unterstützen.
So wird sichergestellt, dass das vorherige Fragment unter dem obersten Fragment gerendert wird, während es
weggewischt.
Horizontale scrollbare Ansichten
In einigen Fällen, z. B. in einer Ansicht mit einer Karte, die Schwenken unterstützt, die Benutzeroberfläche das horizontale Wischen nicht verhindern kann. In dieser haben Sie zwei Möglichkeiten:
- Wenn der Back-Stack kurz ist, kann der Nutzer die App schließen und zur App zurückkehren. zum Startbildschirm, indem Sie die Ein/Aus-Taste drücken.
- Wenn Sie möchten, dass der Nutzer den Back Stack hinunterläuft, können Sie die Ansicht zusammenfassen.
in einem
SwipeDismissFrameLayout
-Objekt, das Edge unterstützt wischen. Das Wischen über den Rand ist aktiviert, wenn die Ansicht oder die untergeordneten Elemente wieder aufgerufen werdentrue
von einem <ph type="x-smartling-placeholder"></ph>canScrollHorizontally()
-Anruf. Durch Wischen am Rand kann der Nutzer Schließen Sie die Ansicht, indem Sie vom linken Rand des Bildschirms von 10% aus wischen, überall in der Ansicht.
Die folgenden Beispiele zeigen, wie Sie eine Ansicht
Objekt SwipeDismissFrameLayout
:
<androidx.wear.widget.SwipeDismissFrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/swipe_dismiss_root" > <TextView android:id="@+id/test_content" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Swipe me to dismiss me." /> </androidx.wear.widget.SwipeDismissFrameLayout>
Kotlin
activity?.findViewById<SwipeDismissFrameLayout>(R.id.swipe_dismiss_root)?.apply { addCallback(object : SwipeDismissFrameLayout.Callback() { override fun onDismissed(layout: SwipeDismissFrameLayout) { layout.visibility = View.GONE } }) }
Java
SwipeDismissFrameLayout testLayout = (SwipeDismissFrameLayout) activity.findViewById(R.id.swipe_dismiss_root); testLayout.addCallback(new SwipeDismissFrameLayout.Callback() { @Override public void onDismissed(SwipeDismissFrameLayout layout) { layout.setVisibility(View.GONE); } } );
Nicht empfohlen: Wischen zum Schließen deaktivieren
Wir raten davon ab, die Funktion zum Schließen durch Wischen zu deaktivieren,
alle Bildschirme durch Wischen geschlossen werden. In einem Ausnahmefall
können Sie das Standarddesign
in einem
Stilressource
und legen Sie das Attribut android:windowSwipeToDismiss
auf false
, wie im folgenden Codebeispiel gezeigt:
<resources> <style name="AppTheme" parent="@android:style/Theme.DeviceDefault"> <item name="android:windowSwipeToDismiss">false</item> </style> </resources>
Du kannst die Nutzer dann über die erste Verwendung deiner App informieren. dass sie die App durch Drücken der Ein/Aus-Taste beenden können.
Mit Ein/Aus-Taste schließen
Durch Drücken der physischen Ein/Aus-Taste wird eine Ein/Aus-Taste gesendet . Daher können Sie die Ein/Aus-Taste nicht als Zurück-Taste verwenden, Schaltfläche oder für die Navigation im Allgemeinen.
Durch Drücken der Ein/Aus-Taste kehrt der Nutzer zum Startbildschirm des Zifferblatts zurück. Bitte beachten Sie die folgenden beiden Ausnahmen:
- Wenn sich der Nutzer in einem Eingabemethoden-Editor (IME) befindet, z. B. in einer handschriftlichen Eingabe Bildschirmerkennung, drücke die Taste schließt den IME und leitet den Nutzer zur App zurück.
- Wenn der Nutzer auf dem Zifferblatt ist und die Hardwaretaste drückt öffnet den App Launcher.
Hinweis: Wenn die Ein/Aus-Taste gedrückt wird,
Die
isFinishing()
-Methode der Activity
-Klasse
keine true
zurückgeben und das Schlüsselereignis nicht abgefangen werden kann.
Weitere Informationen finden Sie unter Navigation: