我正在研究Xamarin表单项目。我的应用程序中有很多Entry字段,其中一个是弹出窗口,弹出窗口在设备屏幕的中心打开。滚动视图中的输入字段也很少。问题仅出在Android应用程序上。对于iOS,它的工作完美。 当我点击弹出窗口中的输入字段时,软键盘被打开,我的弹出窗口的用户界面受到干扰。所以,我决定设置 WindowSoftInputMode = SoftInput.AdjustPan 到我的主Activity。这解决了弹出窗口的UI问题,但现在当我点击其他输入字段时,我的![滚动视图停止滚动] (少数输入字段位于侧面滚动视图中)。我尝试使用AdjustResize并休息其他软输入,但没有用。 关于如何摆脱这个的任何想法?
答案 0 :(得分:3)
在Android Xamarin.Forms上,应用程序正在处理单个Android活动,因此全局设置WindowSoftInputMode
。您可以执行依赖注入服务。在iOS上,它什么都不做,在Android上,它会将WindowSoftInputMode
设置为您想要的值。然后在显示弹出窗口之前和之后使用它来设置WindowSoftInputMode
。
在Xamarin.Forms中Forms.Context
是活动。
var window = ((Activity)Forms.Context).Window;
window.SetSoftInputMode(SoftInput.AdjustPan);
答案 1 :(得分:-1)
如果是
Xamarin Android
您可以直接从mainActivity访问窗口,如下所示:
Window.SetSoftInputMode(Android.Views.SoftInput.AdjustPan);
或在AndroidManifest.xml中
<activity android:name=".myActivity"
android:label="@string/app_name"
android:screenOrientation="sensorPortrait"
android:windowSoftInputMode="adjustPan"/>