[Xamarin.Forms] CustomRenderer 제작 시 참고사항
2017. 6. 10. 19:31ㆍMobile/Xamarin
Xamarin.Forms에서 다른 페이지로 Navigation 되었다가 다시 돌아오는 등의 경우에 페이지가 이전 정보를 유지한채 다시 생성됩니다. 이 때 CustomRenderer가 어떤 기준으로 어떤 값을 유지하면서 재생성되는지 고려하면서 개발이 필요합니다.
- Element와 Control 모두 새롭게 생성 됩니다. 이 때 OnElementChanged 이벤트가 호출되므로 초기화가 필요합니다.
- BindableProperty에 저장된 값은 100% 유지가 됩니다. 그외 변수, 일반 Property, 이벤트 등은 모두 소실됩니다. 따라서 유지되어야 하는 정보는 BindableProperty에 저장해두어야 합니다.
- 다른 페이지로 이동하면서 기존 Element가 메모리에서 소실될 때에는 OnElementChagned 이벤트가 발생하면서 OldElement가 제공됩니다. 불필요한 정보를 따로 저장해두거나, 제거하고 Event와 연결을 끊는 작업을 해야합니다.
- 다른 페이지에서 다시 현재 페이지로 되돌아오면 Element가 재생성되는데, 이 때 NewElement가 제공되므로 BindableProperty를 제외한 다른 이벤트나 변수 등의 초기화가 필요합니다. ViewRenderer를 사용했다면 이때 Control이 null 상태이므로 반드시 새롭게 생성한 후 BindableProperty를 바탕으로 초기화 해야 합니다.
- OnPropertyChanged 이벤트는 BindableProperty 값을 외부에서 할당했을 때만 호출되므로 신경쓸 필요가 없습니다.
'Mobile > Xamarin' 카테고리의 다른 글
[Android Studio] Kakao Android SDK를 Android Studio에서 Import 후 사용하기 (1) | 2017.06.22 |
---|---|
[Xamarin.Android] Binding Java Library (0) | 2017.06.22 |
[SQLite.NET] Xamarin에서 SQLite사용하기 (0) | 2017.05.21 |
[Xamarin] iOS에서 TabbedPage 확장하기 (0) | 2017.05.21 |
[Xamarin] Xamarin.Forms에서 이미지 크기 (0) | 2017.05.21 |