Android studio 如何在容器内使用膨胀砖?
这是一套扩展磁贴。在这里,我想扭曲容器内的扩展瓷砖,这样我就可以给瓷砖添加边框、形状和阴影。阿尔索 我想要像这样的扩展结果。我怎样才能做到这一点。请帮帮我 我试过下面的模式。但当我展开时,我得到了渲染溢出错误Android studio 如何在容器内使用膨胀砖?,android-studio,flutter,dart,flutter-layout,flutter-widget,Android Studio,Flutter,Dart,Flutter Layout,Flutter Widget,这是一套扩展磁贴。在这里,我想扭曲容器内的扩展瓷砖,这样我就可以给瓷砖添加边框、形状和阴影。阿尔索 我想要像这样的扩展结果。我怎样才能做到这一点。请帮帮我 我试过下面的模式。但当我展开时,我得到了渲染溢出错误 Container( height: 80, width: MediaQuery.of(context).size.width - 10, decorat
Container(
height: 80,
width: MediaQuery.of(context).size.width - 10,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
color: Colors.white,
boxShadow: [
BoxShadow(
color: Theme.of(context).hintColor.withOpacity(0.2),
spreadRadius: 2,
blurRadius: 5)
],
),
child:
ExpansionTile(
backgroundColor: Colors.white,
trailing: Icon(Icons.arrow_forward_ios_rounded),
initiallyExpanded: false,
title: Text(
'Messages',
style: Theme.of(context)
.textTheme
.subtitle),
children: List.generate(
3, (indexProduct) {
return Text("terwyteuwte");
}),
)
),
请帮帮我你可以做以下事情 根据您的使用,在
ListView()
中添加以下小部件
class ItemTile extends StatefulWidget {
// final OrderItem orderItem;
// OrderItemTile(this.title);
@override
_ItemTileState createState() => _ItemTileState();
}
class _ItemTileState extends State<ItemTile> {
bool _expanded = false;
@override
Widget build(BuildContext context) {
return AnimatedContainer(
duration: Duration(milliseconds: 300),
height: _expanded
? 350
: 100,
child: Card(
elevation: 10,
color: Theme.of(context).canvasColor,
margin: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
child: Column(
children: <Widget>[
ListTile(
title: (Text(
'File',
style: TextStyle(
fontSize: 22, fontWeight: FontWeight.bold),
)),
trailing: IconButton(
icon: _expanded
? Icon(Icons.expand_less)
: Icon(Icons.expand_more),
onPressed: () {
setState(() {
_expanded = !_expanded;
});
}),
),
AnimatedContainer(
duration: Duration(milliseconds: 300),
height: _expanded
? 300
: 0,
width: MediaQuery.of(context).size.width,
child: ItemExpandedTile(),
)
],
),
),
);
}
}
class ItemTile扩展了StatefulWidget{
//最终订单项目订单项目;
//OrderItemTile(此.title);
@凌驾
_ItemTileState createState()=>\u ItemTileState();
}
类_ItemTileState扩展状态{
bool _expanded=false;
@凌驾
小部件构建(构建上下文){
返回动画容器(
持续时间:持续时间(毫秒:300),
高度:_展开
? 350
: 100,
孩子:卡片(
标高:10,
颜色:主题。背景。画布颜色,
边缘:边缘组。对称(水平:20,垂直:10),
子:列(
儿童:[
列表砖(
标题:(正文)(
“文件”,
样式:TextStyle(
fontSize:22,fontWeight:fontWeight.bold),
)),
尾随:图标按钮(
图标:\u已展开
?图标(图标。无需展开)
:图标(图标。展开更多),
已按下:(){
设置状态(){
_扩展=!\u扩展;
});
}),
),
动画容器(
持续时间:持续时间(毫秒:300),
高度:_展开
? 300
: 0,
宽度:MediaQuery.of(context).size.width,
子项:ItemExpandedFile(),
)
],
),
),
);
}
}
展开后显示的小部件
class ItemExpandedTile extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
child: Stack(
children: <Widget>[
Positioned(
top: 5,
child: Container(
height: 90,
width: MediaQuery.of(context).size.width - 75,
padding: EdgeInsets.all(10),
decoration: new BoxDecoration(
color: Theme.of(context).canvasColor,
borderRadius: BorderRadius.circular(15),
boxShadow: [
BoxShadow(
color: Colors.grey,
blurRadius: 15.0,
spreadRadius: 0.5,
offset: Offset(
1.0,
1.0,
),
)
],
),
child: Row(
children: <Widget>[
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text(
'Title',
style: TextStyle(
fontSize: 12, fontWeight: FontWeight.bold),
),
],
),
],
),
),
),
],
),
);
}
}
class ItemExpandedFile扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回填充(
填充:常量边集。对称(水平:16,垂直:12),
子:堆栈(
儿童:[
定位(
前五名,
子:容器(
身高:90,
宽度:MediaQuery.of(context).size.width-75,
填充:边缘设置。全部(10),
装饰:新盒子装饰(
颜色:主题。背景。画布颜色,
边界半径:边界半径。圆形(15),
boxShadow:[
箱形阴影(
颜色:颜色。灰色,
半径:15.0,
扩展半径:0.5,
偏移量:偏移量(
1.0,
1.0,
),
)
],
),
孩子:排(
儿童:[
纵队(
crossAxisAlignment:crossAxisAlignment.start,
mainAxisAlignment:mainAxisAlignment.spaceAround,
儿童:[
正文(
“头衔”,
样式:TextStyle(
fontSize:12,fontWeight:fontWeight.bold),
),
],
),
],
),
),
),
],
),
);
}
}
结果:
SingleChildScrollView(child:Container(…)
@pskink thanku…它不会动态更改容器的大小…怎么可能呢?是的,它会更改容器的大小