美文网首页
flutter-可选元素的显示或隐藏Offstage

flutter-可选元素的显示或隐藏Offstage

作者: 秋分落叶 | 来源:发表于2019-09-24 11:18 被阅读0次

布局行为:
offstage的布局行为完全取决于offstate参数,offstage默认为true,不显示;

当offstage为true,child不会绘制到屏幕上,不会响应点击事件,也不会占用空间;
当offstage为false,child绘制到屏幕上;
注意,当offstage不可见,如果child有动画,应该手动停止动画,offstage不会停止动画;

示例代码:

 Widget _createTips(String image, String title, {String subTitle}) {
    return InkWell(
      child: Column(
        children: <Widget>[
          Image.asset(ImageUtil.mineAssets(image), width: 50, height: 41),
          SizedBox(height: 5),
          ICYText(title, fontSize: 12, color: Color(0xFF7474DC)),
          SizedBox(height: 5),
          Offstage(
              offstage: subTitle != null ? false : true,
              child: ICYText(subTitle ?? '',
                  fontSize: 12, color: Color(0xFFE3AC5E)))
        ],
      ),
    );
  }
}

如果offstage为true,child自身的最小最大宽度返回0.0;而且也不会绘制child,也不会加载到内存中;offstage并不是通过插入或者删除widget tree的节点来实现显示隐藏效果,而是通过自身尺寸,不响应hitTest以及不绘制,来达到展示与隐藏的效果;

相关文章

网友评论

      本文标题:flutter-可选元素的显示或隐藏Offstage

      本文链接:https://www.haomeiwen.com/subject/izdmyctx.html