Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Πώς χειρίζεται οι μη φόρμες το mvxformsdroidpagepresenter


Πώς χειρίζεται οι μη φόρμες το mvxformsdroidpagepresenter


Το `mvxformsdroidPagePresenter 'στο MVVMCross έχει σχεδιαστεί για να χειρίζεται τη πλοήγηση για τις σελίδες Xamarin.forms μέσα σε μια εφαρμογή Android. Ωστόσο, όταν ασχολούνται με μη-μορφές κλήσεις, όπως αυτές που αφορούν τις εγγενείς δραστηριότητες Android, ανακατευθύνει αυτές τις κλήσεις σε ένα `mvxandroidviewpresenter '. Αυτό επιτρέπει στην εφαρμογή να περιηγείται άψογα μεταξύ των σελίδων Xamarin.Forms και των εγγενών προβολών Android.

Ακολουθεί μια λεπτομερής εξήγηση για το πώς το "mvxformsdroidPagePresenter` χειρίζεται τις μη μορφές κλήσεις:

1. Ανακατεύθυνση μη-μορφών κλήσεων: Όταν υποβάλλεται ένα αίτημα για να δείξει μια άποψη που δεν είναι μια σελίδα xamarin.forms (π.χ. μια εγγενή δραστηριότητα Android), το `mvxformsdroidpagepresenter` ανακατευθύνει αυτό το αίτημα σε ένα` mvxandroidviewpresenter`. Αυτός ο παρουσιαστής είναι υπεύθυνος για το χειρισμό της λογικής παρουσίασης για τις εγγενείς απόψεις Android.

2. Εφαρμογή: Για να επιτευχθεί αυτή η ανακατεύθυνση, πρέπει να δημιουργήσετε έναν προσαρμοσμένο παρουσιαστή που επεκτείνει το `mvxformsdroidPagePresenter '. Σε αυτόν τον προσαρμοσμένο παρουσιαστή, μπορείτε να παρακάμψετε τη μέθοδο `show` για να ελέγξετε αν το αίτημα προβολής του μοντέλου είναι για μια προβολή Xamarin.Forms ή μια εγγενή προβολή Android. Εάν είναι για μια εγγενή προβολή, μπορείτε στη συνέχεια να χρησιμοποιήσετε το `mvxandroidviewpresenter` για να χειριστείτε την παρουσίαση.

3. Διεπαφή ViewModel: Μια προσέγγιση για τη διαφοροποίηση μεταξύ των μοντέλων Xamarin.forms και των εγγενών μοντέλων Android είναι να καθορίσει μια διεπαφή όπως το `ixfviewModel` που εφαρμόζεται από όλα τα μοντέλα προβολής Xamarin.Forms. Στον προσαρμοσμένο σας παρουσιαστή, μπορείτε να ελέγξετε αν το μοντέλο προβολής υλοποιεί αυτήν τη διεπαφή. Εάν το κάνει, το χειρίζεστε ως προβολή μορφών. Διαφορετικά, χρησιμοποιείτε το `mvxandroidviewpresenter '.

4. Εγγραφή: Για να χρησιμοποιήσετε τον προσαρμοσμένο σας παρουσιαστή, πρέπει να παρακάμψετε τη μέθοδο `createviewpresenter 'στην κλάση ρύθμισης MVVMCross. Αυτή η μέθοδος θα πρέπει να επιστρέψει μια παρουσία του προσαρμοσμένου παρουσιαστή σας, εξασφαλίζοντας ότι χρησιμοποιείται για όλες τις παρουσιάσεις προβολής.

5. Διαχείριση κύκλου ζωής: Για τις εγγενείς απόψεις Android, πρέπει επίσης να διαχειριστείτε τον κύκλο ζωής της δραστηριότητας εφαρμόζοντας `imvxandroidcurrentTopActivity` και` imvxandroidactivitylifetimelistener '. Αυτό εξασφαλίζει ότι το MVVMCross γνωρίζει την τρέχουσα κορυφαία δραστηριότητα και μπορεί να χειριστεί σωστά τα γεγονότα πλοήγησης και κύκλου ζωής.

Ακολουθώντας αυτά τα βήματα, μπορείτε να χειριστείτε αποτελεσματικά τόσο το xamarin.forms όσο και τις ιθαγενείς προβολές Android μέσα στην ίδια εφαρμογή χρησιμοποιώντας το MVVMCROSS.

Αναφορές:
[1] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-forms-and-android-activity-application
[2] https://stackoverflow.com/questions/36599398/mvvmcross-with-xamarin-forms-and-masterdetail
[3] https://github.com/mvvmcross/mvvmcross/issues/2802
[4] https://support.microsoft.com/en-us/office/create-a-form-that-contains-a-subform-a-one-to-many-dorm-df3822f-8aba-49cb-831a-1e74d6f06b
[5] https://michaelridland.com/xamarin/mixing-xamarin-forms-mvvmcross-nativeviews/
[6] https://xamarin97.rssing.com/chan-50656755/article24666.html
[7] https://xamarin91.rssing.com/chan-50628054/all_p539.html
[8] https://www.googlecloudcommunity.com/gc/appsheet-q-a/system-doesn-t-generate-detail-and-form-view-for-ny-view/m-p/527393
[9] https://stackoverflow.com/questions/38181508/login-page-with-xamarin-mvvmcross-forms-preventing-back-naviging-on-on-android
[10] https://help.smartsuite.com/en/articles/6267415-form-view
[11] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-forms-view-presenter
[12] https://ridland2.rssing.com/chan-57660607/all_p1.html