[Xamarin] 자마린에서 팝업 띄우기

2016. 3. 8. 20:13Mobile

자마린에서는 DisplayAlert, DisplayActionSheet라는 2가지 팝업을 제공합니다. 이 팝업은 자마린이 지원하는 모든 플렛폼에서 적절하게 표현이 됩니다.

Displaying an Alert

자마린에서 팝업을 띄우기 위해서는 Page에서 DisplayAlert를 호출하시면 됩니다. Page 상에서 호출하지 않으면 Exception이 발생합니다.

1
DisplayAlert("확인", "작업이 중단되었습니다.", "확인");

팝업은 모달 팝업처럼 나타납니다. 만약 확인, 취소 등 사용자의 선택을 받기 위해서는 다음과 같이 확인, 취소에 해당하는 버튼 명을 제공하면 됩니다. 사용자의 선택에 따라 bool값을 반환하며, 값을 받기 위해서는 await 키워드를 제공해야 합니다.

1
2
3
4
5
async void OnAlertYesNoClicked (object sender, EventArgs e)
{
  var answer = await DisplayAlert ("확인", "작업을 중단하시겠습니까?", "확인", "취소");
  Debug.WriteLine ("Answer: " + answer);
}

Guiding Users Through Tasks

UIActionSheet는 iOS에서는 일반적인 UI로써 사용자가 N개의 항목중 하나를 선택할 수 있도록 해줍니다. Xamarin.Forms의 DisplayActionSheet는 이러한 UI를 모든 플렛폼에서 사용할 수 있도록 해줍니다. Android와 Windows 그에 맞는 컨트롤이 나타나게 됩니다.

1
2
3
4
5
async void OnActionSheetSimpleClicked (object sender, EventArgs e)
{
  var action = await DisplayActionSheet ("전송방법을 선택해주세요", "취소", null, "이메일", "트위터", "페이스북");
  Debug.WriteLine ("Action: " + action);
}

DisplayAlertSheet 실행결과

위에서 세번째 매개변수는 null로 지정되었지만, 이 값을 지정하면 destroy 버튼이 나타납니다. 아래의 예제를 보시면 쉽게 이해하실 수 있습니다.

1
2
3
4
5
async void OnActionSheetCancelDeleteClicked (object sender, EventArgs e)
{
  var action = await DisplayActionSheet ("저장하시겠습니까?", "취소", "삭제", "사진", "이메일 전송");
  Debug.WriteLine ("Action: " + action);
}

DisplayActionSheet 실행결과