将 WindowSoftInputMode 设置为 AdjustPan 时出现问题

Amr*_*rut 2 xamarin.android xamarin xamarin.mac xamarin-studio xamarin.forms

我正在研究 Xamarin 表单项目。我的应用程序中有许多条目字段,其中一个在弹出窗口中,弹出窗口在设备屏幕的中心打开。在滚动视图中也很少有条目字段。问题仅在于 Android 应用程序。对于 iOS,它运行良好。当我单击弹出窗口旁边的输入字段时,软键盘被打开并且我的弹出窗口的 UI 受到干扰。因此,我决定将WindowSoftInputMode = SoftInput.AdjustPan设置 为我的主要活动。这解决了我的弹出窗口 UI 问题,但是现在当我单击其他输入字段时,我的![滚动视图停止滚动](侧面滚动视图中很少有输入字段)。我尝试使用 AdjustResize 和其他软输入,但是没用。关于如何摆脱这种情况的任何想法?

初始弹出界面

softkey_board_open

softkey_board_closed

Dan*_*rda 5

在 Android 上,Xamarin.Forms 应用程序正在处理单个 Android 活动,因此WindowSoftInputMode是全局设置的。你可以做一个依赖注入服务。在 iOS 上它什么也不做,而在 Android 上它会设置WindowSoftInputMode为您想要的值。然后使用它WindowSoftInputMode在显示您的弹出窗口之前和之后进行设置。

在 Xamarin.Forms 中Forms.Context是活动。

var window = ((Activity)Forms.Context).Window;
window.SetSoftInputMode(SoftInput.AdjustPan);
Run Code Online (Sandbox Code Playgroud)