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

如何在.NET MAUI中调用Android原生getWindow() API以禁用触摸屏

在.NET MAUI中禁用Android触摸屏输入

实现方案

该功能属于Android平台专属特性,需通过MAUI的平台特定代码实现:

禁用触摸输入

在需要屏蔽触摸的逻辑处添加以下代码(仅在Android平台生效):

#if ANDROID
using Android.Views;
using Microsoft.Maui.ApplicationModel;

var currentActivity = Platform.CurrentActivity;
if (currentActivity != null)
{
    // 禁用所有触摸输入,对应原生Android的FLAG_NOT_TOUCHABLE
    currentActivity.Window.SetFlags(WindowManagerFlags.NotTouchable, WindowManagerFlags.NotTouchable);
}
#endif

恢复触摸输入

若后续需要重新启用触摸功能,执行以下代码:

#if ANDROID
var currentActivity = Platform.CurrentActivity;
if (currentActivity != null)
{
    // 清除禁用触摸的标记
    currentActivity.Window.ClearFlags(WindowManagerFlags.NotTouchable);
}
#endif

重要提示

  • Platform.CurrentActivity是MAUI提供的获取当前Android Activity的官方API,用于替代Xamarin时代的Forms.Context。
  • WindowManagerFlags.NotTouchable是MAUI对原生WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE的封装枚举,无需直接引用原生常量。
  • 必须用#if ANDROID条件编译指令包裹代码,避免在iOS、Windows等其他平台编译报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:02:14