在颤振中,我想在卡片小部件中嵌入一个扩展面板,就像在图像中一样。我试图在卡中添加扩展面板,但它没有工作,也无法更改卡部件的边框半径。
发布于 2019-02-15 11:40:44
你并没有真正问过一个问题,但你提出了两个问题:
我会试着解决这两个问题。
第1期
请你详细说明一下这件事没有成功吗?扩展面板可以添加到卡中。详情如下:
Widget build(BuildContext context) {
return Card(
child: ExpansionPanelList(
children: <ExpansionPanel>[
new ExpansionPanel(
headerBuilder: (BuildContext context, bool isExpanded) =>
const Text("header data"),
body: const Text("Body data"),
isExpanded: false,
),
],
),);
}
展开列表将显示此示例中的标题,但单击右侧箭头时不会执行任何操作。为此,包含的小部件必须是有状态小部件。当标头被点击时,isExpanded的状态应该会改变。这方面的实施如下:
class MyWidget extends StatefulWidget {
MyWidgetState createState() => new MyWidgetState();
}
class MyWidgetState extends State<MyWidget> {
bool isExpanded;
@override
void initState() {
this.isExpanded = false;
super.initState();
}
Widget build(BuildContext context) {
return Card(child: ExpansionPanelList(
expansionCallback: (int index, bool isExpanded) {
setState(() {
this.isExpanded = !isExpanded;
});
},
children: <ExpansionPanel>[
new ExpansionPanel(
headerBuilder: (BuildContext context, bool isExpanded) =>
const Text("header data"),
body: const Text("Body data"),
isExpanded: this.isExpanded,
),
],
);
}
}
请理解,这是一个可扩展的面板上的卡片。卡片和可扩展面板都有标高。
第2期
您可以按以下方式更改卡的边框半径:
Card(shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0),),
child: child),
);
但是,如果可扩展面板位于卡的顶部,则其半径几乎为正方形(默认),因此卡的底部部分将是正方形而不是圆形。原因是卡的底部显示了可扩展的面板。移开面板,您将看到圆角。
https://stackoverflow.com/questions/49494887
复制相似问题