MAUI的虚拟键盘自动调整窗口位置的方法记录(没找到重写方法,找替代方案中)

Android常规调整窗口的方法

一般的Android开发主要通过调整AndroidMainfest.xml的代码(属性值)来调整;比如在application中调整android:windowSoftInputMode的值,需要注意大小写,错误时生成也会报错,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="V1.0">
	<application android:allowBackup="true"
               android:icon="@mipmap/appicon"
               android:supportsRtl="true" 
               android:label="疑心暗鬼"
               android:windowSoftInputMode="adjustResize">
  </application>
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
	<uses-permission android:name="android.permission.INTERNET" />
</manifest>

MAUI的虚拟键盘自动调整方法(还在看)

常规意义调整安卓文件会与Maui的配置属性重复

根据实际调整了MAUI的AndroidMainfest.xml文件发现,系统会报系统设置了两遍MAUI的虚拟键盘属性,报错内容如下:
在这里插入图片描述
提示内容大致时,不能同时把软键盘设置为adjustresize和adjustPan属性(截图中顺便展示了所有android:windowSoftInputMode的属性值

Maui的虚拟键盘属性调整方法:

先说总结,实际上resize和pan的两个属性,都会对当前控件有一定的 遮盖作用,具体遮盖的原理和规避方法暂时没研究明白。相比之下,默认的pan属性还比较实用一些,因为被顶上去的控件关闭软键盘还能看得见;但是resize的遮盖基本是永久性的,开启软键盘即触发完全遮蔽,另外会引发image等属性的变形;
所以最理想的方法可能还是以pan属性为前提,重写软键盘的方法;

resize如图,遮住了输入框控件,背景画面自动压缩变形;
遮住了输入框控件,背景画面自动压缩变形
pan如图,所有控件往上顶,但是背景不受影响;
在这里插入图片描述

Maui的虚拟键盘属性似乎就只有Resize和Pan两种属性,使用的方法有两种:
1、在APP.XMALapplication下加入如下代码:

xmlns:android="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;assembly=Microsoft.Maui.Controls"
android:Application.WindowSoftInputModeAdjust="Resize"

2、使用 Fluent APIC# 使用它(还没有验证成功)

using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;
...

App.Current.On<Microsoft.Maui.Controls.PlatformConfiguration.Android>().UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize);

Maui软键盘打开、关闭、及读取是否打开或关闭方案

方法一(inputview.KeyboardExtensions)

每个inputview类型的控件,都可以调用keyboardExtensions来查看键盘是否展示,需要开启或者关闭开启,比如text控件,editer控件一类可以输入文字的控件;

方法二(CommunityToolkit.Maui Nuget包,从这个角度看稍微有点多余)

更新:这个包主要实现了即使在没有控件为主的条件下也可以打开或者关闭软键盘,除此之外应该有更重要的作用,单从软键盘显示关闭层面看有点多余
根据官方文档显示,是通过安装Nuget管理包实现的,Nuget管理包名称:CommunityToolkit.Maui
在这里插入图片描述
安装后,需要在MauiProgram.cs中应用安装的包,如截图(安装Nuget包后会有readme文档提醒):
在这里插入图片描述

文档地址:https://learn.microsoft.com/zh-cn/dotnet/communitytoolkit/maui/extensions/keyboard-extensions

检查软键盘是否打开or关闭,获得bool返回值true or false;

bool keyboardtype = CommunityToolkit.Maui.Core.Platform.KeyboardExtensions.IsSoftKeyboardShowing(MessageEditor);

其他打开或关闭的功能目前没用上,可以自行看文档调整;

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值