|
domenica 9 aprile 2017
Come forse sapete, una MasterDetailPage in Xamarin.Forms è un particolare tipo di pagina che permette di avere un menu laterale a scorrimento, detto Master, e una parte di dettaglio che contiene tipicamente una NavigationPage o anche una ContentPage.
In questo post non voglio parlare di come utilizzarla, bensì di come gestire un suo comportamento.
Un piccolo fastidio è che, quando tocchiamo elementi che stanno nella parte Master, il flyout rimane aperto e non scompare automaticamente. Questo più che altro se siamo in una visualizzazione "portrait", perché se siamo in "landscape" con maggiore spazio a disposizione non ci dovrebbero essere problemi.
Fortunatamente, la MasterDetailPage ha una proprietà che si chiama IsPresented e che può essere assegnata con false per nascondere il flyout da codice. Quando lo si fa, però, è bene controllare che sia utile o necessario, per esempio verificando che la pagina sia in modalità portrait sfruttando il codice descritto nel post precedente.
Alessandro
Xamarin.Forms non ha, di suo, strumenti per capire o gestire l'orientamento delle pagine. Bisogna lavorare sui progetti di piattaforma.
Tuttavia, se il nostro obiettivo è solamente capire l'attuale orientamento della pagina, si può sfruttare l'evento SizeChanged e dire che l'orientamento è landscape se la larghezza è maggiore dell'altezza. In questo semplice modo:
Alessandro
|