私はXamarin.formsを使用してアプリケーションを作成しています。 (PCL)Xamarin.formsのnuGetパッケージのカスタムレンダリングが矛盾します
私はちょうどカスタムレンダラーを使用することに深刻な問題に気づいた。 私はこのスレッドから来ました。 https://forums.xamarin.com/discussion/54317/new-xamarin-forms-guide-custom-renderers/p2
このスレッドは、私が経験したことは、1つのレンダラークラスだけが同時に動作することです。 2つの異なるパッケージが同じレンダラーを使用すると、そのうちの1つが動作しないことを意味します。
パッケージが追加されたばかりの場合は、元のパッケージや鉱山が破損する可能性があります。実際の問題は、開発者がその時点で気付かないことがあることです。
なぜ動作するのですか? または、私は間違っていますか間違っていませんか?すでにContentPageやページのカスタムレンダラを持つカスタムContentPageのレンダラーとインストール済みのパッケージを作った場合
- 例
。私の場合、KeyboardOverlap.Forms.Pluginはそうです。両方のレンダラークラスがOnApearing()をオーバーライドしました。あなたのアプリを実行するとき。レンダラーのOnApearingは1つだけ解雇されます。
もちろん私はそれを手でマージすることができます。しかし、両方ともnuGetパッケージであり、それらを変更できない場合はどうなりますか? (もちろんGithubを使用することもできますが、別の問題が発生します)
例を挙げることができますか?私は完全にフォローされているかわからない。私はかなり複雑なアプリケーションを書式で書いており、レンダラーが動かない問題に遭遇したことはありません。 –
@ChaseFlorell ContentPage用のカスタムレンダラーと、ContentPageまたはPageのカスタムレンダラーを持つインストールされたパッケージをすでに作成している場合。私の場合、KeyboardOverlap.Forms.Pluginはそうです。両方のレンダラークラスがOnApearing()をオーバーライドしました。あなたのアプリを実行するとき。レンダラーのOnApearingは1つだけ解雇されます。 –
カスタムレンダラのそれぞれに一意の名前はありませんか?これが失敗する唯一の方法は、デフォルトをオーバーライドする場合です。決して実行しないで、デフォルトから継承し、オーバーライドするときに 'base'を必ず呼び出してください。デフォルトを上書きしているためにnuget pkgが壊れている場合は、修正するように指示します。 –