دور المشاهدين في MVVMCROSS
يلعب المشاهدون في MVVMcross دورًا مهمًا في إدارة التنقل وعرض وجهات النظر في التطبيق. إنهم مسؤولون عن تحديد كيفية عرض المشاهدات ، وهو أمر ضروري لإنشاء واجهة مستخدم قوية ومرنة عبر منصات مختلفة.
المسؤوليات الرئيسية
1. إدارة التنقل: تعامل المشاهدون في العرض بين الآراء. يحددون كيفية تقديم عرض ، ما إذا كان ينبغي إظهاره كنشاط كامل الشاشة أو جزء أو حتى مربع حوار مشروط. هذا مهم بشكل خاص في التطبيقات الهجينة حيث يتم استخدام كل من xamarin.forms والآراء الأصلية [1] [3].
2. التخصيص: يسمح MVVMCross للمطورين بإنشاء مدافع عرض مخصص. هذا التخصيص ضروري عند دمج أطر عمل واجهة المستخدم المختلفة ، مثل xamarin.forms ، مع مكونات Android أو iOS الأصلية. على سبيل المثال ، في تطبيق Xamarin.forms على Android ، قد تحتاج إلى إنشاء مقدم مخصص مثل `mvxformsdroidpagepresenter` لإدارة كل من النموذج وطلبات Android الأصلية [1].
3. إدارة دورة الحياة: يجب أن يكون المركزون في العرض على دراية بدورة حياة الأنشطة أو وجهات النظر التي يديرونها. يتم تحقيق ذلك من خلال واجهات مثل `imvxandroidcurrenttopactivity` لنظام Android ، مما يساعد في تتبع النشاط الأعلى الحالي وإدارة أحداث دورة الحياة [1].
4. سمات العرض التقديمي: يستخدم MVVMCROSS سمات العرض التقديمي لتخصيص كيفية تقديم طرق العرض. على سبيل المثال ، يتيح لك "mvxfragmentpresentationattribute" تحديد ما إذا كان ينبغي استضافة جزء داخل نشاط أو جزء آخر ، مما يوفر المرونة في تصميم واجهة المستخدم [3].
5. التوسع: نظام ViewPresenter قابل للتوسعة للغاية. يمكن للمطورين إنشاء سمات عرض تقديمي جديدة عن طريق توسيع "mvxbasePresentationAttribute" وتخصيص منطق العرض من خلال التصنيف الفرعي للمقدمين الحاليين مثل `mvxandroidviewpresenter` أو` mvxappcompatviewpresenter` [3].
تطبيق
لتنفيذ عرض مخصص في MVVMCROSS ، تحتاج عادة إلى:
- تجاوز طريقة `createviewpresenter`: في فئة الإعداد الخاصة بالنظام الأساسي (على سبيل المثال ،` setup.cs` لنظام Android) ، يمكنك تجاوز هذه الطريقة لإرجاع مقدم العرض المخصص الخاص بك.
- قم بتسجيل مقدم العرض: تأكد من تسجيل مقدم العرض المخصص لدى MVVMCROSS أثناء إعداد التطبيق.
- تنفيذ منطق العرض التقديمي: حدد كيفية تقديم المشاهدات بناءً على متطلبات طلبك.
مثال استخدم الحالة
النظر في تطبيق هجين يستخدم كل من xamarin.forms وأنشطة Android الأصلية. يمكنك إنشاء مقدم مخصص مثل `mvxformsdroidpagepresenter` للتعامل مع التنقل بين صفحات النماذج والأنشطة الأصلية. من شأن هذا المقدم إعادة توجيه المكالمات غير النمطية إلى "mvxandroidviewpresenter` ، مما يضمن التكامل السلس لكلا أطر العمل [1].
باختصار ، تعد المقربين في MVVMCROSS ضرورية لإدارة التنقل والعرض التقديمي ، مما يوفر خيارات المرونة والتخصيص التي تعد حاسمة لتطوير تطبيقات منصة متعددة المعقدة.
الاستشهادات:[1] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-forms-and-and-activity-application
[2] https://stackoverflow.com/questions/71959649/does-mvvmcross-have-a-built-in-message-foriewmodel--tell-view-when-viewappea
[3] https://www.mvvmcross.com/documentation/platform/android/android-view-presenter
[4] https://canbilgin.wordpress.com/tag/mvvmcross/
[5] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[6] https://learn.microsoft.com/en-us/dotnet/maui/xaml/fundamentals/mvvm؟view=net-maui-9.0
[7] https://github.com/mvvmcross/mvvmcross/blob/develop/mvvmcross/platforms/ios/presenters/mvxiosviewpresenter.cs
[8] https://stackoverflow.com/questions/11041605/why-does-mvxmodalsupporttouchviewpresenter-in-mvvmcross-only-support- one-modal-v