internal static void PostShowKeyboard(this AView view)
        {
            void ShowKeyboard()
            {
                // Since we're posting this on the queue, it's possible something else will have disposed of the view
                // by the time the looper is running this, so we have to verify that the view is still usable
                if (view.IsDisposed())
                {
                    return;
                }

                view.ShowKeyboard();
            };

            Device.BeginInvokeOnMainThread(ShowKeyboard);
        }