flutter组件_AbsorbPointer

官方说明:A widget that absorbs pointers during hit testing.
翻译:一个在命中测试期间吸收指针的Widget。
作者释义:阻止子元素的点击事件 。

AbsorbPointer的定义

const AbsorbPointer({
  super.key,
  this.absorbing = true,
  this.ignoringSemantics,
  super.child,
});

属性:

属性名属性值
absorbing是否阻止子Widget的点击事件,默认为true(阻止)
ignoringSemantics是否保持子Widget的语义信息,该特性在v3.8.0-12.0.pre之后已弃用。
child子组件

实例:

import 'package:flutter/material.dart';

void main() => runApp(const AbsorbPointerApp());

class AbsorbPointerApp extends StatelessWidget {
  const AbsorbPointerApp({super.key});

  
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('AbsorbPointer Demo')),
        body: const Center(
          child: AbsorbPointerWidget(),
        ),
      ),
    );
  }
}

class AbsorbPointerWidget extends StatefulWidget {
  const AbsorbPointerWidget({super.key});

  
  State<AbsorbPointerWidget> createState() => _AbsorbPointerExampleState();
}

class _AbsorbPointerExampleState extends State<AbsorbPointerWidget> {
  bool isPrevent = true;

  
  Widget build(BuildContext context) {
    return Container(
      constraints: const BoxConstraints(
        minHeight: double.infinity
      ),
      child: Column(
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Switch(
                value: isPrevent,
                onChanged:(value) => setState(() => isPrevent=value),
              ),
              const Text('是否阻止点击')
            ],
          ),
          SizedBox(
            width: 200.0,
            height: 100.0,
            child: AbsorbPointer(
              absorbing: isPrevent,
              child: ElevatedButton(
                onPressed: () {},
                child: const Text('Button'),
              ),
            ),
          )
        ],
      ),
    );
  }
}

在这里插入图片描述

如有错误请及时与作者联系~~非常感谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值