Wear पर फ़ुल-स्क्रीन पर गतिविधियों से बाहर निकलें

उपयोगकर्ता बाईं से दाईं ओर स्वाइप करके, Wear OS पर की गई गतिविधि से बाहर निकल सकता है. अगर ऐप्लिकेशन में हॉरिज़ॉन्टल स्क्रोलिंग है, तो उपयोगकर्ता ब्राउज़र के किनारे पर जाकर, ऐप्लिकेशन से बाहर निकल जाता है स्क्रीन पर देखा जा सकता है. इसके बाद, बाईं से दाईं ओर स्वाइप किया जा रहा है. पावर बटन दबाने पर, उपयोगकर्ता स्मार्टवॉच की होम स्क्रीन पर भी वापस आ जाता है.

खारिज करने के लिए स्वाइप करने का जेस्चर

मौजूदा स्क्रीन बंद करने के लिए, उपयोगकर्ता बाईं से दाईं ओर स्वाइप करते हैं. इसलिए, हम हम आपको इनका इस्तेमाल करने का सुझाव देते हैं:

  • वर्टिकल लेआउट
  • कॉन्टेंट कंटेनर

हम यह भी सुझाव देते हैं कि आप अपने ऐप्लिकेशन में हॉरिज़ॉन्टल स्वाइपिंग वाले जेस्चर.

किसी गतिविधि को खारिज करना

गतिविधियां अपने आप स्वाइप करके खारिज करने की सुविधा का समर्थन करती हैं. किसी गतिविधि को स्वाइप करना बाईं से दाईं ओर दिखाने पर, गतिविधि बंद हो जाती है और ऐप्लिकेशन में नीचे जाता है पिछली गतिविधियां.

फ़्रैगमेंट को खारिज करना

फ़्रैगमेंट में खारिज करने के लिए स्वाइप करने की सुविधा का इस्तेमाल करने के लिए, आपको फ़्रैगमेंट वाला व्यू SwipeDismissFrameLayout क्लास. इसे ध्यान में रखें फ़्रैगमेंट इस्तेमाल करने का फ़ैसला लेते समय. इसका इस्तेमाल करें SwipeDismissFrameLayout क्लास, जैसा कि इस उदाहरण में दिखाया गया है:

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;
    }
}

ध्यान दें: जब आप अपनी गतिविधि में फ़्रैगमेंट का इस्तेमाल करते हैं, तो इसका इस्तेमाल करें FragmentManager.add के बजाय FragmentManager.replace स्वाइप करके खारिज करने के जेस्चर का इस्तेमाल करें. इससे यह पक्का करने में मदद मिलती है कि आपका पिछला फ़्रैगमेंट, टॉप फ़्रैगमेंट के नीचे रेंडर हो जाए, जबकि वह दूर स्वाइप किया गया.

हॉरिज़ॉन्टल स्क्रोल किए जा सकने वाले व्यू

कुछ मामलों में, जैसे कि पैन करने की सुविधा देने वाले मैप के व्यू में, यूज़र इंटरफ़ेस, हॉरिज़ॉन्टल स्वाइपिंग को नहीं रोक सकता. इसमें इसके लिए, दो विकल्प मौजूद हैं:

  • अगर बैक स्टैक छोटा है, तो उपयोगकर्ता ऐप्लिकेशन को खारिज करके वापस आ सकता है होम स्क्रीन पर लिंक कर सकते हैं.
  • अगर आपको उपयोगकर्ता को पिछली गतिविधियों पर जाना है, तो व्यू को रैप करें SwipeDismissFrameLayout ऑब्जेक्ट में, जो एज में काम करता है स्वाइप करें. व्यू या इसके चाइल्ड एंट्री वापस आने पर, किनारे पर स्वाइप करने की सुविधा चालू हो जाती है true canScrollHorizontally() कॉल. किनारे पर स्वाइप करने से उपयोगकर्ता को व्यू को खारिज करने के लिए, स्क्रीन पर सबसे बाईं ओर 10% तक स्वाइप करना कहीं भी क्लिक करें.

नीचे दिए गए उदाहरण दिखाते हैं कि 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);
    }
  }
);

इसका सुझाव नहीं दिया जाता: स्वाइप करके खारिज करने की सुविधा को बंद करें

हम आम तौर पर, स्वाइप करने और खारिज करने की सुविधा को बंद करने का सुझाव नहीं देते, क्योंकि उपयोगकर्ता स्वाइप करके किसी भी स्क्रीन को खारिज कर सकता है. एक अपवाद के तौर पर, आप डिफ़ॉल्ट थीम को बढ़ा सकते हैं में स्टाइल रिसॉर्स और android:windowSwipeToDismiss एट्रिब्यूट सेट करें false तक, जैसा कि नीचे दिए गए कोड सैंपल में दिखाया गया है:

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

इसके बाद, उपयोगकर्ताओं को यह सूचना दी जा सकती है कि वे आपके ऐप्लिकेशन का पहली बार इस्तेमाल करें कि वे पावर बटन दबाकर ऐप्लिकेशन से बाहर निकल सकें.

पावर बटन का इस्तेमाल करके, मैसेज खारिज करने की सुविधा

फ़िज़िकल पावर बटन दबाने से पावर बटन भेजा जाता है इवेंट. इसलिए, पावर बटन का इस्तेमाल बैक अप के तौर पर नहीं किया जा सकता बटन या आम तौर पर नेविगेशन के लिए उपलब्ध है.

पावर बटन को दबाने पर, उपयोगकर्ता को स्मार्टवॉच की होम स्क्रीन पर वापस ले जाया जाता है. इसके दो अपवाद हैं:

  • अगर उपयोगकर्ता इनपुट के तरीके के एडिटर (IME) का इस्तेमाल करता है, जैसे कि हैंडराइटिंग स्क्रीन पहचानने की सुविधा, बटन दबाने पर IME को बंद करता है और उपयोगकर्ता को ऐप्लिकेशन पर वापस भेजता है.
  • अगर उपयोगकर्ता स्मार्टवॉच की होम स्क्रीन पर है, तो हार्डवेयर बटन दबाएं ऐप्लिकेशन लॉन्चर खोलता है.

ध्यान दें कि पावर बटन को दबाने पर, Activity क्लास में से isFinishing() तरीका यह करता है true वापस नहीं आएगा और मुख्य इवेंट को बीच में नहीं रोका जा सकेगा.

ज़्यादा जानकारी के लिए, यह देखें नेविगेशन.