想基于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只涉及颜色的更改和字体大小的修改,现在遇到的问题是:
展开前
展开后
点击展开后,此时因为折叠被解开所以文字溢出被取消:
但title文字的展开方向是从中间往两边展开,而不是预期的从上往下展开,而使用Align组件也没有解决这个问题…
阅读了ExpansionTile 底层的ListTile也没有搞清楚是什么原因导致的… 百思不得其解,希望得到解答,代码如上,可以尝试复现。
一次性掌握Flutter高阶技能+商业级复杂项目架构设计与开发方案
了解课程