Tralasciamo per ora Drawer.RightOpen che non credo esista nella libreria ufficiale (se non ricordo male aveva un pannello centrale ed uno a sinistra che si animava scorrendo in/out).
Per keypress, desideri intercettare il tasto back e svolgere tutte le seguenti azioni:
- chiudere il Left panel del drawer se è aperto
- tornare indietro di una "pagina" in tutte le webview
- se tutte le webview sono già sulla prima pagina, uscire
Sub Activity_KeyPress (KeyCode As Int) As Boolean
'il select potrebbe essere sostituito da un semplice if KeyCode.KEYCODE_BACK visto che ti interessa solo questo tasto
Select KeyCode
Case KeyCodes.KEYCODE_BACK:
page_back
If Drawer.LeftOpen Then Drawer.LeftOpen = False 'in realtà basterebbe Drawer.leftOpen = False
'nel caso esista un RightOpen potresti afre lo stesso anche per esso
Return True
Case Else
Return False
'Activity.LoadLayout("1") con questa ricarichi il Layout ad ogni pressione di tasto diversa da Back!
End Select
End Sub
Sub page_back
if not(Ready2Close) then
WebView2.Back
'WebView3.Back
'....
'WebView9.Back
else
'codice già visto per mostrare messaggio asincrono ed eventuale termine programma
end if
End Sub
Sub Ready2Close as boolean
' qui dovresti avere una tua funzione che ti dice che tutte le webview sono arrivate al capolinea
' se non ne hai una basata su tuoi criteri, sappi che esiste WebViewExtra (o qualcosa del genere) che è in grado di dire se una certa WV si trova all'inizio della sua history
end sub
ps: sempre che tu abbia davvero utilizzato la B4XDrawer e non la ACToolBar (che personalmente non ho mai utilizzato)...