2017-10-13 1 views
4

최근 Xamarin.Form 레이아웃에 관한 팀과의 토론이있었습니다. Xamarin.Forms.AbsoluteLayout은 부서지기 쉽고 작업하기가 어려웠습니다 (개인적으로는 비례 레이아웃과 특히 독서를 기억하는 모든 것에서 매우 편리하다고 생각했습니다. 일반적으로 성능 문제는 아닙니다. 그들은 this article을 언급했는데, 이는 AbsoluteLayouts - 이지만, 안드로이드 관련 기사 인을 사용하는 것을 피하고, Android.Widget.AbsoluteLayout을 가리키고 있습니다.Xamarin.Forms 레이아웃을 플랫폼 별 레이아웃으로 어떻게 변환합니까?

Xamarin.Forms.Layout이 어떻게 든 Android로 변환됩니다 .AidsoluteLayout (Xamarin 이후로 완전히 다릅니다. 양식에서 비례 크기 조정이 가능합니다)? 방법 입니다. Xamarin.Forms는 다양한 레이아웃을 플랫폼 별 레이아웃으로 변환합니까?

+1

https://github.com/xamarin/Xamarin.Forms – Jason

+0

위대한 의견을 보내 주셔서 감사 드리며, 코드를 파헤쳐 답을 찾으려고합니다. Xamarin.Forms.AbsoluteLayout을 명쾌하게 피하라고 말씀 하시겠습니까? – jbyrd

+2

@jbyrd'Android.Views.View'의 결론은 Forms 기반의'VisualElementTracker'가'x, y, width, height' 매개 변수를 사용하여 네이티브'View.Layout' 메소드를 직접 호출하여 컨트롤을 하드 와이어하는 것입니다 놓기. Forms에는 계산을 수행하는 고유의 계층 구조 상위 기반 레이아웃 관리자가 있습니다. 나는 Forms 레이아웃 시스템 전체를 Android LayoutParams 및 iOS 제약 조건으로의 기본 변환으로 대체 한 클라이언트를 보유하고 있으며, Fody 기반 빌드 변환 및 런타임 캐싱 시스템을 갖추고 거의 모든 기본 레이아웃 속도를 달성하고 Forms의 레이아웃을 완전히 연기합니다 매니저. – SushiHangover

답변

3

레이아웃은 Xamarin Forms에서 기본 플랫폼에서의 해당 기능과 다르게 작동합니다. XF 앱솔루트 레이아웃은 이 아니며은 Android AbsoluteLayout 주위의 래퍼입니다.

XF의 레이아웃은 WPF 및 다른 Microsoft 플랫폼에서의 작동 방식과 비슷합니다. Layout은 먼저 모든 자식에게 기본 크기 (측정 값)를 제공하도록 요청합니다. 그런 다음 논리를 사용하여 자녀를 배치합니다. 기본 제공 컨트롤은 기존 네이티브 컨트롤을 감싸줍니다 (예 : 항목이 Android의 iITextBox 및 Android의 EditText에 매핑 됨).

그렇습니다. Absolute Layouts은 일반적으로 여러 화면 크기를 지원하는 좋은 방법이 아니라는 데 동의합니다. "범용"UI에 대한 일반적인 접근 방식을 만드는 데 도움이되는보다 유연한 레이아웃이 있습니다.

관련 문제