You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI .NET 7中Editor弹出键盘时布局无法正确调整(.NET 6正常)

.NET 7中MAUI布局键盘适配问题的原因及解决方法

问题原因

.NET 7的MAUI框架调整了默认的软键盘交互模式:在.NET 6中,默认采用Resize模式,当Editor弹出键盘时,系统会重新计算页面的可用显示空间,Grid中设置为Star高度的中间行会自动收缩以适配剩余空间;而.NET 7将默认模式改为了Pan,此时键盘弹出时系统仅会将整个页面向上平移以露出输入框,不会调整布局元素的尺寸,因此出现了和.NET 6不同的表现。

解决方案

需要手动将页面的软键盘交互模式改回Resize,有两种常用方式:

方式一:通过MAUI平台特定代码设置

在创建ContentPage时,针对Android平台添加模式配置:

MainPage = new ContentPage { Content = grid }
#if ANDROID
    .On<Android>().SetWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize)
#endif;

方式二:在Android项目中全局配置

打开Android平台项目下的Platforms/Android/MainActivity.cs,在OnCreate方法中添加如下代码:

protected override void OnCreate(Bundle savedInstanceState)
{
    base.OnCreate(savedInstanceState);
    // 设置软键盘交互模式为Resize
    Window.SetSoftInputMode(Android.Views.SoftInput.AdjustResize);
}

两种方式都能恢复.NET 6中的布局适配行为,让键盘弹出时Grid的中间Star行自动收缩。

内容的提问来源于stack exchange,提问作者SpinLock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 06:52:20