Exibir pop-ups

Exibir um alerta, pedir a um usuário para fazer uma escolha ou exibir um prompt é uma tarefa comum da interface do usuário. Xamarin.Forms tem três métodos na Page classe para interagir com o usuário por meio de um pop-up: DisplayAlert, DisplayActionSheet, e DisplayPromptAsync. Eles são renderizados com os controles nativos apropriados em cada plataforma.

Exibir um alerta

Todas as Xamarin.Formsplataformas suportadas têm um pop-up modal para alertar o usuário ou fazer perguntas simples a ele. Para exibir esses alertas no Xamarin.Forms, use o DisplayAlert método em qualquer Page. A linha de código a seguir mostra uma mensagem simples para o usuário:

await DisplayAlert ("Alert", "You have been alerted", "OK");

Caixa de diálogo de alerta com um botão, no iOS e Android

Este exemplo não coleta informações do usuário. O alerta é exibido de forma modal e, após descartado, o usuário continua interagindo com o aplicativo.

O método DisplayAlert também pode ser usado para capturar a resposta do usuário apresentando dois botões e retornando um boolean. Para obter uma resposta a um alerta, forneça texto para os dois botões e para o método await. Após o usuário selecionar uma das opções, a resposta será retornada ao seu código. Observe as palavras-chave async e await no código de exemplo abaixo:

async void OnAlertYesNoClicked (object sender, EventArgs e)
{
  bool answer = await DisplayAlert ("Question?", "Would you like to play a game", "Yes", "No");
  Debug.WriteLine ("Answer: " + answer);
}

Caixa de diálogo de alerta com dois botões

O DisplayAlert método também tem sobrecargas que aceitam um FlowDirection argumento que especifica a direção na qual os elementos da interface do usuário fluem dentro do alerta. Para obter mais informações sobre a direção do fluxo, consulte Localização da direita para a esquerda.

Aviso

Por padrão na UWP, quando um alerta é exibido, todas as chaves de acesso definidas na página por trás do alerta ainda podem ser ativadas. Para obter mais informações, consulte Teclas de acesso do VisualElement no Windows.

Orientar os usuários nas tarefas

A UIActionSheet é um elemento de interface do usuário comum no iOS. O Xamarin.FormsDisplayActionSheet método permite incluir esse controle em aplicativos multiplataforma, renderizando alternativas nativas no Android e na UWP.

Para exibir uma planilha de ação, await DisplayActionSheet em qualquer Page, passando os rótulos de mensagem e botão como strings. O método retorna o rótulo de cadeia de caracteres do botão que foi clicado pelo usuário. Um exemplo simples é mostrado aqui:

async void OnActionSheetSimpleClicked (object sender, EventArgs e)
{
  string action = await DisplayActionSheet ("ActionSheet: Send to?", "Cancel", null, "Email", "Twitter", "Facebook");
  Debug.WriteLine ("Action: " + action);
}

Caixa de diálogo ActionSheet, no iOS e Android

O destroy botão é renderizado de forma diferente dos outros botões no iOS e pode ser deixado null ou especificado como o terceiro parâmetro de cadeia de caracteres. O exemplo a seguir usa o botão destroy:

async void OnActionSheetCancelDeleteClicked (object sender, EventArgs e)
{
  string action = await DisplayActionSheet ("ActionSheet: SavePhoto?", "Cancel", "Delete", "Photo Roll", "Email");
  Debug.WriteLine ("Action: " + action);
}

Caixa de diálogo ActionSheet com botão Destroy, no iOS e Android

O DisplayActionSheet método também tem uma sobrecarga que aceita um FlowDirection argumento que especifica a direção na qual os elementos da interface do usuário fluem dentro da planilha de ação. Para obter mais informações sobre a direção do fluxo, consulte Localização da direita para a esquerda.

exibir um prompt

Para exibir um prompt, chame o DisplayPromptAsync em any Page, passando um título e uma mensagem como string argumentos:

string result = await DisplayPromptAsync("Question 1", "What's your name?");

O prompt é exibido modalmente:

Captura de tela de um prompt modal, no iOS e Android

Se o botão OK for tocado, a resposta inserida será retornada como um string. Se o botão Cancelar for tocado, null será retornado.

A lista completa de argumentos para o método DisplayPromptAsync é:

  • title, do tipo string, é o título a ser exibido no prompt.
  • message, do tipo string, é a mensagem a ser exibida no prompt.
  • accept, do tipo string, é o texto do botão aceitar. Este é um argumento opcional, cujo valor padrão é OK.
  • cancel, do tipo string, é o texto do botão cancelar. Esse é um argumento opcional, cujo valor padrão é Cancelar.
  • placeholder, do tipo string, é o texto do espaço reservado a ser exibido no prompt. Este é um argumento opcional, cujo valor padrão é null.
  • maxLength, do tipo int, é o comprimento máximo da resposta do usuário. Este é um argumento opcional, cujo valor padrão é -1.
  • keyboard, do tipo Keyboard, é o tipo de teclado a ser usado para a resposta do usuário. Este é um argumento opcional, cujo valor padrão é Keyboard.Default.
  • initialValue, do tipo string, é uma resposta predefinida que será exibida e que pode ser editada. Este é um argumento opcional, cujo valor padrão é um .string

O exemplo a seguir mostra a configuração de alguns dos argumentos opcionais:

string result = await DisplayPromptAsync("Question 2", "What's 5 + 5?", initialValue: "10", maxLength: 2, keyboard: Keyboard.Numeric);

Esse código exibe uma resposta predefinida de 10, limita o número de caracteres que podem ser inseridos a 2 e exibe o teclado numérico para entrada do usuário:

Captura de tela de um prompt modal opcional, no iOS e Android

Aviso

Por padrão na UWP, quando um prompt é exibido, todas as chaves de acesso definidas na página por trás do prompt ainda podem ser ativadas. Para obter mais informações, consulte Teclas de acesso do VisualElement no Windows.