저는 Xamarin.forms를 사용하여 응용 프로그램을 만들고 있습니다. (PCL)nuGet 패키지의 사용자 지정 렌더링이 Xamarin.forms에서 충돌합니다.
난 그냥 사용자 정의 렌더러를 사용하여 심각한 문제를 발견했습니다. 이 스레드에서 왔습니다. https://forums.xamarin.com/discussion/54317/new-xamarin-forms-guide-custom-renderers/p2
이 스레드는 말합니다. 그리고 나는 오직 하나의 렌더러 클래스 만 동시에 작동한다는 것을 경험했습니다. 두 개의 다른 패키지가 동일한 렌더러를 사용하는 경우 그 중 하나는 작동하지 않습니다. (클래스 계층 구조를 따르므로 서브 클래 싱 된 클래스가 작동하고 다른 클래스는 작동을 멈 춥니 다.)
방금 추가 한 패키지가 원래 패키지 나 광산을 망칠 수 있으며 실제 문제는 개발자가 그 시간에 알지 못하는 것입니다.
왜 작동하는가? 아니면 내가 잘못했거나 잘못 했습니까? 이미 ContentPage 또는 페이지에 대한 사용자 정의 렌더러를 가지고 사용자 정의 ContentPage에 대한 렌더러 설치 패키지를 만든 경우
- 예를
. 내 경우, KeyboardOverlap.Forms.Plugin 않습니다. 그리고 두 렌더러 클래스 모두 OnApearing()을 재정의했습니다. 앱을 실행할 때. 한 렌더러의 OnApearing 만 해고됩니다.
물론 손을 병합 할 수 있습니다. 그러나 둘 다 패키지를 nuGet하고 수정할 수 없으면 어떻게 될까요? 물론 Github를 사용할 수는 있지만 다른 문제가 발생할 수 있습니다.
예를 들려 줄 수 있습니까? 나는 완전히 따라갈 지 모르겠다. 나는 폼이있는 꽤 복잡한 어플리케이션을 작성하고 렌더러가 작동하지 않는 문제에 결코 빠지지 않았습니다. –
@ChaseFlorell 이미 ContentPage 용 사용자 정의 렌더러 및 ContentPage 또는 Page에 대한 사용자 정의 렌더러가 설치된 패키지를 만든 경우. 내 경우, KeyboardOverlap.Forms.Plugin 않습니다. 그리고 두 렌더러 클래스 모두 OnApearing()을 재정의했습니다. 앱을 실행할 때. 한 렌더러의 OnApearing 만 해고됩니다. –
각 사용자 지정 렌더러에 고유 한 이름이 있습니까? 이것이 실패 할 수있는 유일한 방법은 디폴트를 오버라이드하는 것입니다 ... 결코하지 말고, 디폴트에서 상속 받고 오버라이드 할 때'base'를 호출해야합니다. 너겟 팩이 기본값보다 우선 함으로 인해 깨진 경우이를 고치십시오. –