الخروج من أنشطة وضع ملئ الشاشه

الإعلانات

الخروج من أنشطة وضع ملئ الشاشه

 

يمكن للمستخدم الخروج من نشاط الساعه من خلال التمرير من اليسار إلى اليمين. إذا كان التطبيق يتضمن تمريراً أفقياً..

(على سبيل المثال، نوع التمرير المتوفر في تطبيق يحتوي على خرائط)، يخرج المستخدم عن طريق الإنتقال إلى حافة المحتوى ثم التمرير سريعاً من اليسار إلى اليمين.

الضغط على زر الطاقة يعيد المستخدم إلى واجهة الساعة.

اقرأ المصادر التالية:

نمط التمرير للإغلاق (بما في ذلك الحركات)

 

 

 

 

 

إيماءة التمرير السريع للإلغاء


يقوم المستخدمون بالتمرير من اليسار إلى اليمين لغلق الشاشة الحالية. لذا، يوصى بإستخدام ما يلي:

يوصى أيضاً بعدم إحتواء تطبيقك على إيماءات للتمرير الأفقي.

 

 

مغادرة النشاط

النشاط يدعم تلقائياً ميزة التمرير السريع. يؤدي تمرير النشاط من اليسار إلى اليمين إلى مغادرة النشاط، وبالتالي ينتقل التطبيق إلى الكومة الخلفية.

 

 

الشظايا

يمكنك لف المعاينه الخاصة بمحتوى الشظيه في الفئة 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 android.support.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 android.support.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;
    }
}

 

 

ملاحظة: الفئة SwipeDismissFrameLayout تحل محل فئة مشابهة تم إيقافها في مكتبة دعم الساعات.

 

 

 

 

معاينات التمرير الإفقي

في بعض الحالات، كما في المعاينة التي تحتوي على خريطة تدعم الحركة، لن تقوم واجهة المستخدم بمنع التمرير الأفقي. و في هذا السيناريو، هناك خياران:

  •  إذا كانت الكومة الخلفية قصيرة، يمكن للمستخدم مغادرة التطبيق والعودة إلى الشاشة الرئيسية (واجهة الساعه) عن طريق الضغط على زر الطاقة.

 

  • إذا كنت تريد أن ينتقل المستخدم إلى الكومة الخلفية، فيمكنك لف المعاينه بكائن SwipeDismissFrameLayout ..

الذي يدعم التمرير من الحافة. يتم تمكين التمرير من الحافة، عندما تقوم المعاينه أو توابعها بإرجاع القيمة “صحيح” من الإستدعاء ()canScrollHorizontally.

ميزة التمرير من الحافة تمكن المستخدم من إلغاء المعاينه بواسطة التمرير من أقصى يسار الشاشة..

(تم تعيينه حالياً على %10 من عرض الشاشة) وليس في أي مكان من النافذة فقط.

 

للقيام بلف المعاينه في كائن SwipeDismissFrameLayout، راجع الأمثلة التالية:

XML لملف المخطط

<android.support.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." />
</android.support.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 إلى “خطأ”:

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

 

يمكنك بعد ذلك إعلام المستخدمين (عند إستخدامهم تطبيقك لأول مرة ) أنه يمكنهم الخروج من التطبيق عن طريق الضغط على زر التشغيل.

 

 

 

 

 

سلوك مغادرة التطبيقات قبل الإصدار 2.0

قبل الإصدار 2.0 من نظام تشغيل الساعات، تم إستخدام فئة DismissOverlayView لتنفيذ عملية الضغط المطول للمستخدم لمغادرة التطبيق.

لم يعد إستخدام فئة DismissOverlayView متاحاً بعد الآن.

بالإضافة إلى ذلك، لم يعد الضغط المطول لمغادرة التطبيق مقترحاً. لاتقم بتنفيذ الضغط المطول لمغادرة أنشطة ملئ الشاشه (سواء كانت أنشطة عامة أو تفاعليه مثل خرائط قوقل).

 

 

المغادرة بواسطة زر الطاقة

الضغط على زر الطاقة (الهاردوير) يقوم بإرسال حدث مفتاح التشغيل. لذا، لا يمكنك إستخدام زر الطاقة كزر للرجوع أو للتنقل بشكلٍ عام.

عند الضغط عليه، يقوم زر الطاقة بإعادة المستخدم إلى الشاشة الرئيسية (واجهة الساعة). هناك إستثناءان:

– إذا كان المستخدم في محرر أسلوب الإدخال (مثال، شاشة التعرف على خط اليد)، فإن الضغط على الزر يغلق محرر أسلوب الإدخال ومن ثم يعيد المستخدم إلى التطبيق.

– إذا كان المستخدم في واجهة الساعة، سيؤدي الضغط على زر الجهاز إلى فتح مشغّل التطبيقات.

لاحظ أنه عند الضغط على زر الطاقة، فإن دالة الإنهاء ()isFinishing من فئة النشاط لن تقوم بإرجاع القيمة “صحيح” (ولن يمكنك إعتراض حدث المفتاح).

 


للإطلاع على المقال باللغة الإنجليزية أضغط هنا.

الإعلانات

1 thought on “الخروج من أنشطة وضع ملئ الشاشه”

اترك رد