3

美しい AppCompat テーマを使用できるように、最近 xamarin フォームを 1.5.1-pre1 に更新しました。それは機能し、とても素敵に見えます。

問題が 1 つあります。以前の FormsApplicationActivity では、OnOptionsItemSelected メソッドをオーバーライドして、ユーザーが戻る矢印アイコンをクリックし、viewmodel のクリーンアップを行ったときにインターセプトしていました。どうやら、このメソッドは FormsAppCompatActivity を使用した後に呼び出されていません。「ソフト」の戻るボタンの押下 (ツールバーのアイコンはハードの戻るボタンではありません) を傍受するにはどうすればよいですか?

また、Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer をオーバーライドしようとしましたが、オーバーライドできないようです:(

これを傍受する方法を知っている人はいますか?

4

3 に答える 3

0

Xamarin.Forms には、NavigationBar の [戻る] ボタンが押され、ハードウェアの [戻る] ボタンが押されたことをインターセプトするより良い方法があります。これは、独自のメソッドを作成しNavigationRenderer、メソッドをオーバーライドしますOnPopViewAsync

[assembly: ExportRenderer(typeof(NavigationPage), typeof(CustomNavigationRenderer))]
namespace YourApp.Droid
{
    public class CustomNavigationRenderer : NavigationPageRenderer
    {
        public CustomNavigationRenderer(Context context) : base(context)
        {
        }

        protected override async Task<bool> OnPopViewAsync(Page page, bool animated)
        {
            // Write your code here
        }
    }
}

お役に立てれば

于 2019-07-26T06:52:24.757 に答える