muak / AiForms.Effects

AiForms.Effects for Xamarin.Forms
MIT License
245 stars 27 forks source link

AndroidでSwichにAlterColorを使用するとSystem.ObjectDisposedExceptionが発生する #52

Closed boze0904 closed 3 years ago

boze0904 commented 4 years ago

こんにちは。お疲れさまです。 Aiforms.Effectsを使わせて頂いております。 大変助かっています。ありがとうございます。

実機にてAndroidでSwichにAlterColorを使用し、 画面を移動すると(MainPageを書き換え もしくはバックボタンでアプリの終了)例外が発生してしまいます。 System.ObjectDisposedException: 'Cannot access a disposed object. Object name: 'Android.Graphics.Drawables.NinePatchDrawable'.'

使い方が悪いのでしょうか。 Xamlで以下の記述をしているだけです。

<Switch VerticalOptions="Center" HorizontalOptions="EndAndExpand" ef:AlterColor.On="true" ef:AlterColor.Accent="#2196F3" />

ご教授いただけると幸いです。 よろしくお願いいたします。

boze0904 commented 4 years ago

すみません。Xamlを記述し忘れました。

<Switch VerticalOptions="Center" HorizontalOptions="EndAndExpand" ef:AlterColor.On="true" ef:AlterColor.Accent="#2196F3" />

muak commented 4 years ago

@boze0904 ご報告ありがとうございます。

多分、バグですね。ご迷惑おかけします🙇🏻‍♂️ Androidのバージョン等教えていただけると助かります。

boze0904 commented 4 years ago

ご返信ありがとうございます。

実機:AQUOS    Android8.1

開発環境: VisualStuidio2019 16.4.2 Xamarin.Form 4.4.0.991265 NETStandard.Library 2.0.3 AiForms.Effects 1.6.1 Xamarin.Android.Support.v4 28.0.0.3 Xamarin.Android.Support.v7.AppCompat 28.0.0.3 etc

muak commented 4 years ago

@boze0904 すみません、試してみましたが再現できませんでした。

ただSwitchに関しては公式で色の変更に対応したみたいですので、そちらを利用すると良いと思います。 https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/user-interface/switch#switch-appearance

boze0904 commented 4 years ago

ご確認ありがとうございます。 私の環境のせいかもしれません。

SwichのOnColorとThumbColorは試しましたが使用できないのです。 理由はSwichのバーというのでしょうか。 グレーになるべき色がoffのときには白で、背景の溶け込んでしまい、 ツマミだけが浮いている状態になってしまいます。 onにしたときは色がでるのですが。

そこでAiforms.Effectsを試したところoffのときでもバーがグレーになっているので すごいと思って使用しました。 他にNugetで探したのですが、Aiforms.Effectsしか見当たらなくて。。。

ありがとうございました。

muak commented 4 years ago

@boze0904 SwitchのEffectの実装は以下のコードなので部分的にコピーして利用しても良いかもしれません。 https://github.com/muak/AiForms.Effects/blob/master/AiForms.Effects.Droid/AlterColorSwitch.cs

boze0904 commented 4 years ago

ご返信が遅れまして申し訳ございません。 コードは勉強で参考にさせていただきます。

結果、Xamarin.formsのCheckBoxで代用しました。

muak commented 3 years ago

ようやく再現できましたので修正しました。