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

优化Android端BottomSheet关闭行为:透明度处理方案咨询

解决.NET MAUI中th49:BottomSheet Android端滑动关闭时页面透明度异常问题

直接用BottomSheet组件自带的打开/关闭事件就能完美解决,不用额外加手势,具体步骤如下:

  • 给BottomSheet绑定Opened和Closed事件,这两个事件不管是按钮触发关闭还是用户滑动关闭都会触发,能统一处理页面透明度:

    <th49:BottomSheet x:Name="MyBottomSheet" 
                      Opened="BottomSheet_Opened" 
                      Closed="BottomSheet_Closed">
        <!-- 这里放你的BottomSheet内容 -->
    </th49:BottomSheet>
    
  • 在代码后台实现事件逻辑,仅针对Android平台处理(iOS端已经自动做了背景变暗):

    private void BottomSheet_Opened(object sender, EventArgs e)
    {
        if (DeviceInfo.Platform == DevicePlatform.Android)
        {
            // 替换成你页面的根布局(比如Grid/Layout)
            MainRootLayout.Opacity = 0.3;
        }
    }
    
    private void BottomSheet_Closed(object sender, EventArgs e)
    {
        if (DeviceInfo.Platform == DevicePlatform.Android)
        {
            MainRootLayout.Opacity = 1;
        }
    }
    

之前加Grid手势没用的原因是:滑动关闭是BottomSheet组件内部的交互逻辑,它的触摸事件会优先拦截,导致Grid的手势无法正确响应。而用组件自带的Closed事件,不管关闭触发方式是什么,都会执行透明度重置,完全覆盖所有场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 09:45:58