flutter 刷新单个组件 ValueNotifier 和 V

2021-03-10  本文已影响0人  司徒新新
//注册数据监听器  <> 内是数据类型 你想要的类型  ()内是默认值
ValueNotifier<bool> _valueNotifier = ValueNotifier<bool>(false); 
@override
  Widget buildWidget(BuildContext context) {
    return ValueListenableBuilder<bool>(
      valueListenable: _valueNotifier,
      builder: (context, value, child) {
        return Visibility(
          visible: value == true,
          child: Container(
            color: baseColor(),
            width: getScreenWidth(),
            height: MediaQuery.of(context).padding.top,
          ),
        );
      },
    );
  }

改变值 value可以是任何值 看你定义的值是什么

XXBaseBtn(
      title: '点击',
      ontap: () {
       _valueNotifier.value = true;
      },
 )

全部代码 model

class XXValueNotifierTest extends StatefulWidget {
  XXValueNotifierTest({Key key}) : super(key: key);

  @override
  _XXValueNotifierTestState createState() => _XXValueNotifierTestState();
}

class _XXValueNotifierTestState extends State<XXValueNotifierTest> {
  //注册数据监听器  <> 内是数据类型 你想要的类型  ()内是默认值
  ValueNotifier<bool> _valueNotifier = ValueNotifier<bool>(false);
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Column(
        children: [
          ValueListenableBuilder<bool>(
            valueListenable: _valueNotifier,
            builder: (context, value, child) {
              return Visibility(
                visible: value == true,
                child: Container(
                  color: baseColor(),
                ),
              );
            },
          ),
          XXBaseBtn(
            title: '点击',
            ontap: () {
              _valueNotifier.value = true;
            },
          )
        ],
      ),
    );
  }
}
上一篇下一篇

猜你喜欢

热点阅读