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

嵌套控件设置InputTransparent=true时触发Context空引用异常求助

InputTransparent 异常:Context can not be null

异常触发场景

控件嵌套时出现该异常,相关代码如下:

XAML 布局代码

<!--控件嵌套结构-->
<ContentPage.Content>
    <local:SampleView>
        <local:SampleView.Content>
            <local:SampleView2>
                <local:ContextNullException />
            </local:SampleView2>
        </local:SampleView.Content>
    </local:SampleView>
</ContentPage.Content>

自定义控件构造代码

public ContextNullException()
{
    InputTransparent = true;
}

环境信息

  • Platform:Android
  • SDK:7.x

解决建议

  • 延迟设置属性:不在构造函数中直接设置InputTransparent = true,改用控件生命周期方法(比如OnAttachedToWindow),此时控件已关联上下文:
protected override void OnAttachedToWindow()
{
    base.OnAttachedToWindow();
    InputTransparent = true;
}
  • 确保上下文传递:自定义控件(如SampleView、SampleView2)的构造函数要正确接收并传递Context到基类,避免子控件上下文为空:
public SampleView(Context context) : base(context)
{
    InitializeComponent();
}
  • 版本兼容修复:SDK 7.x的Xamarin.Forms可能存在该平台bug,尝试升级到同分支最新补丁版,或通过绑定属性方式设置InputTransparent替代构造函数硬编码。

内容的提问来源于stack exchange,提问作者k.kk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 16:41:02