티스토리 뷰
반응형
Xamarin에서 클릭 이벤트가 제공되지 않는 컨트롤에 이벤트를 만들어서 추가할 수 있다. 클릭 이벤트가 존재하지 않는 StackLayout 2개를 만들어서 해당 StackLayout이 클릭될 때 메시지를 출력해 보도록 하겠다.
StackLayout에 클릭 이벤트 추가 예제
TapGestureRecognizer tap = new TapGestureRecognizer(); // 탭제스쳐 선언
tap.Tapped += Tap_Tapped; // 탭제스쳐에 탭 이벤트 추가
stack1Layout.GestureRecognizers.Add(tap); // stack1layout에 생성한 제스쳐 추가
stack2Layout.GestureRecognizers.Add(tap); // stack2layout에 생성한 제스쳐 추가
private void Tap_Tapped(object sender, EventArgs e)
{
StackLayout selectedLayout = sender as StackLayout; // 클릭이벤트가 발생한 layout 호출
Label selectedLabel = selectedLayout.Children[1] as Label; // 라벨명 호출
string text = selectedLabel.Text; // 라벨명 텍스트 변환
if(text == "위치등록") // 선택된 라벨명 화면 출력
{
Toast.MakeText(MainActivity.MainActivityForAccess, text, ToastLength.Short).Show();
}
else if(text == "위치조회")
{
Toast.MakeText(MainActivity.MainActivityForAccess, text, ToastLength.Short).Show();
}
}
1. TapGestureRecognizer 클래스를 tap 객체로 만든다.
2. tap.Tapped += Tap_Tapped 이벤트를 추가한다.
3. 기존 생성해 놓은 stack1Layout과 stack2Layout에 GestureRecognizers.Add(tap) 하여 이벤트를 추가한다.
4. 이제부터 stack1Layout, stack2Layout을 클릭하면 Tap_Tapped 이벤트가 실행된다.
5. Tap_Tapped 이벤트에서 파라미터로 넘어온 object를 받아서 stack1Layout, stack2Layout 중 Label명으로 구분해서 화면에 출력한다.
- stack1Layout인 경우 "위치등록"을 Toast.MakeText로 출력
- stack2Layout인 경우 "위치조회"를 Toast.MakeText로 출력
반응형
'프로그래밍 > 모바일개발' 카테고리의 다른 글
flutter vs react native vs xamarin 트렌드 비교 (0) | 2023.03.04 |
---|---|
eas : C:\Users\AppData\Roaming\npm\eas.ps1 파일을 로드할 수 없습니다. 파일이 디지털 서명되지 않았습니다. (0) | 2023.02.28 |
Xamarin 뒤로가기 프로그램 종료 (0) | 2023.02.17 |
React Native TextInput 비밀번호 타입으로 입력 (0) | 2023.02.16 |
React Native "RNSScreen" was not found in the UIManager (0) | 2023.02.12 |
댓글
공지사항