Xamarin.Forms 빠른 렌더러

일반적으로 Android의 원래 컨트롤 렌더러는 대부분 두 개의 보기로 구성됩니다.

  • 네이티브 컨트롤(예: a Button 또는 TextView.
  • 일부 레이아웃 작업, 제스처 처리 및 기타 작업을 처리하는 컨테이너 ViewGroup 입니다.

그러나 이 방법은 각 논리 컨트롤에 대해 두 개의 뷰가 생성되어 더 많은 메모리가 필요한 더 복잡한 시각적 트리와 화면에 렌더링하기 위해 더 많은 처리를 수행한다는 측면에서 성능에 영향을 미칩니다.

빠른 렌더러는 컨트롤의 Xamarin.Forms 인플레이션과 렌더링 비용을 단일 보기로 줄입니다. 따라서 두 개의 뷰를 만들고 뷰 트리에 추가하는 대신 하나만 만들어집니다. 이렇게 하면 개체 수를 줄여 성능을 향상시킬 수 있습니다. 즉, 보기 트리가 덜 복잡해지고 메모리 사용량이 줄어듭니다(가비지 수집 일시 중지 횟수도 감소함).

빠른 렌더러는 Android에서 다음 컨트롤에 Xamarin.Forms 사용할 수 있습니다.

기능적으로 이러한 빠른 렌더러는 레거시 렌더러와 다르지 않습니다. 4.0부터 Xamarin.Forms 대상을 지정하는 FormsAppCompatActivity 모든 애플리케이션은 기본적으로 이러한 빠른 렌더러를 사용합니다. 빠른 렌더러 접근 방식을 포함하여 ImageButtonCollectionView모든 새 컨트롤의 렌더러를 사용합니다.

빠른 렌더러를 사용하는 경우 성능 향상은 레이아웃의 복잡성에 따라 각 애플리케이션에 따라 달라집니다. 예를 들어 x2의 성능 향상은 포함된 수천 개의 데이터 행을 스크롤할 ListView 때 가능하며, 각 행의 셀은 빠른 렌더러를 사용하는 컨트롤로 만들어져 스크롤이 눈에 띄게 매끄럽게 진행됩니다.

참고 항목

레거시 렌더러에 사용되는 것과 동일한 방법을 사용하여 빠른 렌더러에 대해 사용자 지정 렌더러를 만들 수 있습니다. 자세한 내용은 사용자 지정 렌더러를 참조하세요.

이전 버전과의 호환성

빠른 렌더러는 다음 방법으로 재정의할 수 있습니다.

  1. 호출Forms.Init하기 전에 클래스에 다음 코드 줄을 추가하여 레거시 렌더러를 MainActivity 사용하도록 설정합니다.

    Forms.SetFlags("UseLegacyRenderers");
    
  2. 레거시 렌더러를 대상으로 하는 사용자 지정 렌더러 사용 기존 사용자 지정 렌더러는 레거시 렌더러를 사용하여 계속 작동합니다.

  3. 다른 렌더러를 사용하는 다른 View.Visual(예: Material)를 지정합니다. 재질 시각적 개체에 대한 자세한 내용은 재질 시각적 개체를 참조 Xamarin.Forms 하세요.