请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于 ExpansionTile title文字展开方向的疑难杂症

想基于ExpansionTile 组件再来二次封装本节课的展开折叠组件,代码如:

  
  Widget build(BuildContext context) {
    return ExpansionTile(
      key: widget.key,
      tilePadding: const EdgeInsets.all(0),
      onExpansionChanged: (isExpanding) =>
          setState(() => _isCollapse = !isExpanding),
      initiallyExpanded: _isCollapse,
      /// demo
      title: Text('Test' * 40, style: videoTitleStyle, softWrap: true,
      maxLines: _isCollapse ? 1 : 3,),
      children: [
      ],
    );
  }

其中的_isCollapse是布尔值用于控制是否展开,videoTitleStyle只涉及颜色的更改和字体大小的修改,现在遇到的问题是:

  1. 展开前
    图片描述

  2. 展开后
    图片描述

点击展开后,此时因为折叠被解开所以文字溢出被取消:
但title文字的展开方向是从中间往两边展开,而不是预期的从上往下展开,而使用Align组件也没有解决这个问题…

阅读了ExpansionTile 底层的ListTile也没有搞清楚是什么原因导致的… 百思不得其解,希望得到解答,代码如上,可以尝试复现。

正在回答 回答被采纳积分+3

1回答

CrazyCodeBoy 2021-04-18 19:09:33

给Aligns设置alignment: Alignment.topCenter了吗?

AnimatedBuilder(
  animation: _controller.view,
  child: child,
  builder: (BuildContext context, Widget child) {
    return Align(
      heightFactor: _heightFactor.value,
      //fix 从布局之上的位置开始展开
      alignment: Alignment.topCenter,
      child: Container(
        //会撑满宽度后,让内容对其
        alignment: Alignment.topLeft,
        padding: EdgeInsets.only(top: 8),
        child: child,
      ),
    );
  },
)


0 回复 有任何疑惑可以回复我~
  • 提问者 it文科生 #1
    是设置了的,但是对 ExpansionTile 的 title 属性仍不起作用...其实这里的问题在于下title属性的Widget不会靠上对齐,我不理解这里的原理...
    回复 有任何疑惑可以回复我~ 2021-04-19 15:31:53
  • 提问者 it文科生 #2
    就还是不清楚怎么样设置可以解决这个ExpansionTile的title文字的展开方向问题...
    回复 有任何疑惑可以回复我~ 2021-04-19 15:40:56
  • CrazyCodeBoy 回复 提问者 it文科生 #3
    那就是在ExpansionTile场景下还不支持这样的操作。
    回复 有任何疑惑可以回复我~ 2021-04-19 22:39:54
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号