美文网首页
Flutter学习

Flutter学习

作者: nicaho | 来源:发表于2024-04-19 16:38 被阅读0次

    实现展开/收起的功能

    需求

    需求:

    0.用系统自带的ExpansionTile

    1.展开时,去除上下的线条

    2.根据内容行数,决定显示"展开/收起"与否

    需求1

    通过 Theme 修改分割线的颜色

    Theme(

    data:Theme.of(context).copyWith(dividerColor: Colors.transparent),

    child: ExpansionTile(xxx)

    )

    需求2

    通过 String 初始化 TextSpan

    通过 TextSpan 初始化 Text,根据行数显示展开还是收缩

    通过 TextSpan 初始化 TextPainter,根据行数是否显示 展开/收缩

    不提前运行入口 widget 的 initState 的代码

    监听原生 ViewController 的 ViewDidLoad

    0.通过 GlobalKey 关联

    GlobalKey<_MyHomePageState> widgetKey = GlobalKey();

    1.在 initState 增加监听

    observer = ViewDidLoadObserver(widgetKey);

    WidgetsBinding.instance.addObserver(observer);

    2.在 WidgetBindingObserver 处理

    3.同时,要增加标识,判断何时重新刷新(build)

    void buildDatas() {

        _isShowList = true

    }

    FutureBuilder<XXX>(

        future: futureXXX,

        builder: (context, snapshot) {

          if (snapshot.connectionState == ConnectionState.waiting || !_isShowList) {

        }

    )

    相关文章

      网友评论

          本文标题:Flutter学习

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