Flutter 如何在Flatter中为标题扩展文件添加渐变
我试图在我的扩展文件中实现某种外观, 1.折叠后的实体标题颜色 2.展开时,渐变仅在标题中,而不在正文中与元素一起 这就是我试图实现的目标: 我正在尝试使用以下代码:Flutter 如何在Flatter中为标题扩展文件添加渐变,flutter,header,gradient,expand,Flutter,Header,Gradient,Expand,我试图在我的扩展文件中实现某种外观, 1.折叠后的实体标题颜色 2.展开时,渐变仅在标题中,而不在正文中与元素一起 这就是我试图实现的目标: 我正在尝试使用以下代码: Theme( data: ThemeData( //brightness: Brightness.dark, primaryColor: Colors.black87, accent
Theme(
data: ThemeData(
//brightness: Brightness.dark,
primaryColor: Colors.black87,
accentColor: Colors.black87,
dividerColor: Colors.transparent,
),
child: Container(
decoration: BoxDecoration(
border: Border.all(
width: 1, color: Color.fromRGBO(121, 85, 72, 1)),
gradient: LinearGradient(
begin: FractionalOffset.bottomCenter,
end: FractionalOffset.topCenter,
// stops: [0.1, 1.0],
// tileMode: TileMode.clamp,
colors: [
isExpanded
? Color.fromRGBO(255,255,255,100)
: Color.fromRGBO(197, 181, 176, 1),
Color.fromRGBO(197, 181, 176, 1)//closed solid
])),
// color: Colors.brown,
child: ExpansionTile(
//backgroundColor: Colors.amberAccent,
trailing: isExpanded //assets/collapse_arrow.png
? Image.asset('assets/collapse_arrow.png')
: Image.asset('assets/expand_arrow.png'),
onExpansionChanged: (bool expanding) =>
setState(() => isExpanded = expanding),
title: Text(
'Header',
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
),
children: <Widget>[
_dropDownItem('Rank', _selectRankFamily2,
_rankFamily2, 'Select Rank'),
_dropDownItem('Rank', _selectRankFamily2,
_rankFamily2, 'Select Rank'),
_dropDownItem('Rank', _selectRankFamily2,
_rankFamily2, 'Select Rank')
],
),
),
),
主题(
数据:主题数据(
//亮度:亮度。暗,
原色:颜色。黑色87,
accentColor:Colors.black87,
分割颜色:颜色。透明,
),
子:容器(
装饰:盒子装饰(
边界:边界(
宽度:1,颜色:color.fromRGBO(121,85,72,1)),
梯度:线性梯度(
开始:分馏loffset.bottomCenter,
结束:分馏Loffset.topCenter,
//停止:[0.1,1.0],
//tileMode:tileMode.clamp,
颜色:[
扩展
?来自RGBO的颜色(255255100)
:颜色。来自RGBO(197181176,1),
Color.fromRGBO(197181176,1)//闭式实体
])),
//颜色:Colors.brown,
子文件:扩展文件(
//背景颜色:Colors.amberAccent,
尾随:isExpanded//assets/collapse_arrow.png
?Image.asset(‘assets/collapse_arrow.png’)
:Image.asset('assets/expand_arrow.png'),
OneExpansionChanged:(布尔扩展)=>
设置状态(()=>isExpanded=扩展),
标题:正文(
“标题”,
样式:TextStyle(fontSize:16,fontWeight:fontWeight.bold),
),
儿童:[
_下拉项('Rank',\u selectRankFamily 2,
_rankFamily2,“选择等级”),
_下拉项('Rank',\u selectRankFamily 2,
_rankFamily2,“选择等级”),
_下拉项('Rank',\u selectRankFamily 2,
_rankFamily2,“选择等级”)
],
),
),
),
但我得到的结果是:
所以渐变不仅仅是页眉,有没有一种方法可以使页眉部分的渐变或纯色只在展开的时候?
多谢各位/
*编辑
如果我使用sugested Answer仅包装标题,则得到以下结果:
所以我需要以某种方式包装尾随图标还是什么?或者在顶部制作“假”可扩展框。您正在用容器包装整个扩展磁贴,而应该只包装标题小部件,这可能就是您要找的
Theme(
data: ThemeData(
//brightness: Brightness.dark,
primaryColor: Colors.black87,
accentColor: Colors.black87,
dividerColor: Colors.transparent,
),
child: ExpansionTile(
//backgroundColor: Colors.amberAccent,
trailing: isExpanded //assets/collapse_arrow.png
? Image.asset('assets/collapse_arrow.png')
: Image.asset('assets/expand_arrow.png'),
onExpansionChanged: (bool expanding) =>
setState(() => isExpanded = expanding),
title: Container(
decoration: BoxDecoration(
border:
Border.all(width: 1, color: Color.fromRGBO(121, 85, 72, 1)),
gradient: LinearGradient(
begin: FractionalOffset.bottomCenter,
end: FractionalOffset.topCenter,
// stops: [0.1, 1.0],
// tileMode: TileMode.clamp,
colors: [
isExpanded
? Color.fromRGBO(255, 255, 255, 100)
: Color.fromRGBO(197, 181, 176, 1),
Color.fromRGBO(197, 181, 176, 1) //closed solid
])),
child: Text(
'Header',
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
),
),
children: <Widget>[
_dropDownItem(
'Rank', _selectRankFamily2, _rankFamily2, 'Select Rank'),
_dropDownItem(
'Rank', _selectRankFamily2, _rankFamily2, 'Select Rank'),
_dropDownItem('Rank', _selectRankFamily2, _rankFamily2, 'Select Rank')
],
),
),
主题(
数据:主题数据(
//亮度:亮度。暗,
原色:颜色。黑色87,
accentColor:Colors.black87,
分割颜色:颜色。透明,
),
子文件:扩展文件(
//背景颜色:Colors.amberAccent,
尾随:isExpanded//assets/collapse_arrow.png
?Image.asset(‘assets/collapse_arrow.png’)
:Image.asset('assets/expand_arrow.png'),
OneExpansionChanged:(布尔扩展)=>
设置状态(()=>isExpanded=扩展),
标题:集装箱(
装饰:盒子装饰(
边界:
Border.all(宽度:1,颜色:color.fromRGBO(121,85,72,1)),
梯度:线性梯度(
开始:分馏loffset.bottomCenter,
结束:分馏Loffset.topCenter,
//停止:[0.1,1.0],
//tileMode:tileMode.clamp,
颜色:[
扩展
?颜色。来自RGBO(255、255、255、100)
:颜色。来自RGBO(197181176,1),
Color.fromRGBO(197181176,1)//闭式实体
])),
子:文本(
“标题”,
样式:TextStyle(fontSize:16,fontWeight:fontWeight.bold),
),
),
儿童:[
_下拉项(
‘排名’,_-selectrankfamily 2,_-rankfamily 2,‘selectrank’,
_下拉项(
‘排名’,_-selectrankfamily 2,_-rankfamily 2,‘selectrank’,
_下拉项('Rank',\u-selectRankFamily2,\u-rankFamily2,'Select Rank')
],
),
),
您正在使用容器包装整个扩展磁贴,而应该只包装标题小部件,这可能就是您要寻找的
Theme(
data: ThemeData(
//brightness: Brightness.dark,
primaryColor: Colors.black87,
accentColor: Colors.black87,
dividerColor: Colors.transparent,
),
child: ExpansionTile(
//backgroundColor: Colors.amberAccent,
trailing: isExpanded //assets/collapse_arrow.png
? Image.asset('assets/collapse_arrow.png')
: Image.asset('assets/expand_arrow.png'),
onExpansionChanged: (bool expanding) =>
setState(() => isExpanded = expanding),
title: Container(
decoration: BoxDecoration(
border:
Border.all(width: 1, color: Color.fromRGBO(121, 85, 72, 1)),
gradient: LinearGradient(
begin: FractionalOffset.bottomCenter,
end: FractionalOffset.topCenter,
// stops: [0.1, 1.0],
// tileMode: TileMode.clamp,
colors: [
isExpanded
? Color.fromRGBO(255, 255, 255, 100)
: Color.fromRGBO(197, 181, 176, 1),
Color.fromRGBO(197, 181, 176, 1) //closed solid
])),
child: Text(
'Header',
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
),
),
children: <Widget>[
_dropDownItem(
'Rank', _selectRankFamily2, _rankFamily2, 'Select Rank'),
_dropDownItem(
'Rank', _selectRankFamily2, _rankFamily2, 'Select Rank'),
_dropDownItem('Rank', _selectRankFamily2, _rankFamily2, 'Select Rank')
],
),
),
主题(
数据:主题数据(
//亮度:亮度。暗,
原色:颜色。黑色87,
accentColor:Colors.black87,
分割颜色:颜色。透明,
),
子文件:扩展文件(
//背景颜色:Colors.amberAccent,
尾随:isExpanded//assets/collapse_arrow.png
?Image.asset(‘assets/collapse_arrow.png’)
:Image.asset('assets/expand_arrow.png'),
OneExpansionChanged:(布尔扩展)=>
设置状态(()=>isExpanded=扩展),
标题:集装箱(
装饰:盒子装饰(
边界:
Border.all(宽度:1,颜色:color.fromRGBO(121,85,72,1)),
梯度:线性梯度(
开始:分馏loffset.bottomCenter,
结束:分馏Loffset.topCenter,
//停止:[0.1,1.0],
//tileMode:tileMode.clamp,
颜色:[
扩展
?颜色。来自RGBO(255、255、255、100)
:颜色。来自RGBO(197181176,1),
Color.fromRGBO(197181176,1)//闭式实体
])),
子:文本(
“标题”