Udostępnij za pośrednictwem


Obsługi

Interfejs użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI) udostępnia kolekcję wieloplatformowych kontrolek, które mogą służyć do wyświetlania danych, inicjowania akcji, wskazywania działań, wyświetlania kolekcji, wybierania danych i nie tylko. Każda kontrolka ma reprezentację interfejsu, która abstrahuje kontrolkę. Kontrolki międzyplatformowe, które implementują te interfejsy, są nazywane widokami wirtualnymi. Programy obsługi mapują te widoki wirtualne na kontrolki na każdej platformie, które są nazywane widokami natywnymi. Programy obsługi są również odpowiedzialne za utworzenie wystąpienia bazowego widoku natywnego i mapowanie międzyplatformowego interfejsu API sterowania do interfejsu API widoku natywnego. Na przykład w systemie iOS program obsługi mapuje interfejs MAUI Button platformy .NET na system iOS UIButton. W systemie Android Button element jest mapowany na element AppCompatButton:

Button handler architecture.

Dostęp do programów obsługi MAUI platformy .NET jest uzyskiwany za pośrednictwem interfejsu specyficznego dla sterowania, takiego jak IButton w przypadku elementu Button. Pozwala to uniknąć konieczności odwołowania się do kontrolek międzyplatformowych, a procedura obsługi musi odwoływać się do kontrolki międzyplatformowej.

Każda klasa obsługi uwidacznia widok macierzysty dla kontrolki międzyplatformowej za pośrednictwem jej PlatformView właściwości. Dostęp do tej właściwości można uzyskać, aby ustawić właściwości widoku natywnego, wywołać metody widoku natywnego i zasubskrybować zdarzenia widoku natywnego. Ponadto kontrolka międzyplatformowa zaimplementowana przez program obsługi jest uwidaczniona za pośrednictwem jego VirtualView właściwości.

Podczas tworzenia wieloplatformowej kontrolki, której implementacja jest udostępniana na każdej platformie przez widoki natywne, należy zaimplementować procedurę obsługi, która mapuje interfejs API sterowania międzyplatformowego na interfejsy API widoku natywnego. Aby uzyskać więcej informacji, zobacz Tworzenie kontrolek niestandardowych za pomocą procedur obsługi.

Można również dostosować programy obsługi w celu rozszerzenia wyglądu i zachowania istniejących kontrolek międzyplatformowych poza dostosowywanie, które jest możliwe za pośrednictwem interfejsu API kontrolki. To dostosowanie programu obsługi modyfikuje widoki natywne dla kontrolki międzyplatformowej. Programy obsługi są globalne, a dostosowywanie procedury obsługi dla kontrolki spowoduje dostosowanie wszystkich kontrolek tego samego typu w aplikacji. Aby uzyskać więcej informacji, zobacz Dostosowywanie kontrolek .NET MAUI za pomocą procedur obsługi.

Mappers

Kluczową koncepcją procedur obsługi MAUI platformy .NET jest maperów. Każda procedura obsługi zwykle udostępnia maper właściwości, a czasami maper poleceń, który mapuje interfejs API kontrolki międzyplatformowej na interfejs API widoku natywnego.

Maper właściwości definiuje akcje do wykonania w przypadku zmiany właściwości w kontrolce międzyplatformowej. Jest to element Dictionary , który mapuje właściwości kontrolki międzyplatformowej na skojarzone akcje. Następnie każda procedura obsługi platformy udostępnia implementacje akcji, które manipulują interfejsem API widoku natywnego. Gwarantuje to, że po ustawieniu właściwości na kontrolce międzyplatformowej podstawowy widok macierzysty jest aktualizowany zgodnie z potrzebami.

Maper poleceń definiuje akcje do wykonania, gdy kontrolka międzyplatformowa wysyła polecenia do widoków natywnych. Są one podobne do maperów właściwości, ale umożliwiają przekazywanie dodatkowych danych. Polecenie w tym kontekście nie oznacza implementacji ICommand . Zamiast tego polecenie jest tylko instrukcją i opcjonalnie jej danymi, które są wysyłane do widoku natywnego. Maper poleceń to Dictionary element, który mapuje polecenie kontrolki międzyplatformowej na skojarzone akcje. Następnie każda procedura obsługi udostępnia implementacje akcji, które manipulują interfejsem API widoku natywnego. Dzięki temu, gdy kontrolka międzyplatformowa wysyła polecenie do widoku natywnego, widok macierzysty zostanie zaktualizowany zgodnie z potrzebami. Na przykład gdy element ScrollView jest przewijany, ScrollViewHandler maper poleceń używa mapowania poleceń do wywoływania akcji, która akceptuje argument pozycji przewijania. Następnie akcja instruuje podstawowy widok macierzysty, aby przewijał się do tej pozycji.

Zaletą używania maperów do aktualizowania widoków natywnych jest możliwość oddzielenia widoków natywnych od kontrolek międzyplatformowych. Eliminuje to konieczność subskrybowania i anulowania subskrypcji zdarzeń kontroli międzyplatformowych dla widoków natywnych. Umożliwia również łatwe dostosowywanie, ponieważ mapatory można modyfikować bez podklas.

Cykl życia programu obsługi

Wszystkie kontrolki MAUI oparte na programie obsługi platformy .NET obsługują dwa zdarzenia cyklu życia programu obsługi:

  • HandlerChanging program jest zgłaszany, gdy zostanie utworzona nowa procedura obsługi dla kontrolki międzyplatformowej, a gdy istniejąca procedura obsługi zostanie usunięta z kontrolki międzyplatformowej. Obiekt HandlerChangingEventArgs , który towarzyszy temu zdarzeniu, ma NewHandler właściwości i OldHandler o typie IElementHandler. NewHandler Gdy właściwość nie nulljest , zdarzenie wskazuje, że nowa procedura obsługi ma zostać utworzona dla kontrolki międzyplatformowej. OldHandler Gdy właściwość nie nullma wartości , zdarzenie wskazuje, że istniejąca kontrolka natywna ma zostać usunięta z kontrolki międzyplatformowej, dlatego wszystkie zdarzenia natywne powinny być nie wirowane i inne wykonywane oczyszczanie.
  • HandlerChanged jest wywoływany po utworzeniu programu obsługi dla kontrolki międzyplatformowej. To zdarzenie wskazuje, że kontrolka natywna, która implementuje kontrolkę międzyplatformową, jest dostępna, a wszystkie wartości właściwości ustawione na kontrolce międzyplatformowej zostały zastosowane do kontrolki natywnej.

Uwaga

Zdarzenie HandlerChanging jest wywoływane w kontrolce międzyplatformowej przed zdarzeniem HandlerChanged .

Oprócz tych zdarzeń każda kontrolka międzyplatformowa ma również metodę zastępowalną OnHandlerChanging wywoływaną podczas HandlerChanging wywoływanego zdarzenia oraz OnHandlerChanged metodę wywoływaną podczas wywoływanego HandlerChanged zdarzenia.

Wyświetl programy obsługi

W poniższej tabeli wymieniono typy implementujące widoki w programie .NET MAUI:

Widok Interfejs Program obsługi Maper właściwości Maper poleceń
ActivityIndicator IActivityIndicator ActivityIndicatorHandler Mapper CommandMapper
BlazorWebView IBlazorWebView BlazorWebViewHandler BlazorWebViewMapper
Border IBorderView BorderHandler Mapper CommandMapper
BoxView IShapeView, IShape ShapeViewHandler Mapper CommandMapper
Button IButton ButtonHandler ImageButtonMapper, , TextButtonMapperMapper CommandMapper
CarouselView CarouselViewHandler Mapper
Cell CellRenderer Mapper CommandMapper
CheckBox ICheckBox CheckBoxHandler Mapper CommandMapper
CollectionView CollectionViewHandler <Mapper
ContentView IContentView ContentViewHandler Mapper CommandMapper
DatePicker IDatePicker DatePickerHandler Mapper CommandMapper
Editor IEditor EditorHandler Mapper CommandMapper
Ellipse IShape ShapeViewHandler Mapper CommandMapper
Entry IEntry EntryHandler Mapper CommandMapper
EntryCell EntryCellRenderer Mapper CommandMapper
Frame FrameRenderer Mapper CommandMapper
GraphicsView IGraphicsView GraphicsViewHandler Mapper CommandMapper
Image IImage ImageHandler Mapper CommandMapper
ImageButton IImageButton ImageButtonHandler ImageMapper, Mapper
ImageCell ImageCellRenderer Mapper CommandMapper
IndicatorView IIndicatorView IndicatorViewHandler Mapper CommandMapper
Label ILabel LabelHandler Mapper CommandMapper
Line IShape LineHandler Mapper CommandMapper
ListView ListViewRenderer Mapper CommandMapper
Map IMap MapHandler Mapper CommandMapper
Path IShape PathHandler Mapper CommandMapper
Picker IPicker PickerHandler Mapper CommandMapper
Polygon IShape PolygonHandler Mapper CommandMapper
Polyline IShape PolylineHandler Mapper CommandMapper
ProgressBar IProgress ProgressBarHandler Mapper CommandMapper
RadioButton IRadioButton RadioButtonHandler Mapper CommandMapper
Rectangle IShape RectangleHandler Mapper CommandMapper
RefreshView IRefreshView RefreshViewHandler Mapper CommandMapper
RoundRectangle IShape RoundRectangleHandler Mapper CommandMapper
ScrollView IScrollView ScrollViewHandler Mapper CommandMapper
SearchBar ISearchBar SearchBarHandler Mapper CommandMapper
Slider ISlider SliderHandler Mapper CommandMapper
Stepper IStepper StepperHandler Mapper CommandMapper
SwipeView ISwipeView SwipeViewHandler Mapper CommandMapper
Switch ISwitch SwitchHandler Mapper CommandMapper
SwitchCell SwitchCellRenderer Mapper CommandMapper
TableView TableViewRenderer Mapper CommandMapper
TextCell TextCellRenderer Mapper CommandMapper
TimePicker ITimePicker TimePickerHandler Mapper CommandMapper
ViewCell ViewCellRenderer Mapper CommandMapper
WebView IWebView WebViewHandler Mapper CommandMapper

Programy obsługi stron

W poniższej tabeli wymieniono typy implementujące strony w programie .NET MAUI:

Strona Procedura obsługi systemu Android Program obsługi katalizatora systemu iOS/Mac Procedura obsługi systemu Windows Maper właściwości Maper poleceń
ContentPage PageHandler PageHandler PageHandler Mapper CommandMapper
FlyoutPage FlyoutViewHandler Telefon FlyoutPageRenderer FlyoutViewHandler Mapper CommandMapper
NavigationPage NavigationViewHandler NavigationRenderer NavigationViewHandler Mapper CommandMapper
TabbedPage TabbedViewHandler TabbedRenderer TabbedViewHandler Mapper CommandMapper
Shell ShellHandler ShellRenderer ShellRenderer Mapper CommandMapper