har*_*ger 5 dart flutter flutter-layout
当我在初始加载后动态地将小部件添加到slider_up_panel小部件时,面板的高度不会增加,这意味着面板的底部被切断并且我收到错误A RenderFlex overflowed by 27 pixels on the bottom.
。
在这种情况下,我该怎么做才能确保面板更新其高度?
通过逻辑动态地将小部件添加到面板condition ? widget : widget
。例如:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("SlidingUpPanelExample"),
),
body: Stack(
children: <Widget>[
Center(child: Text("This is the Widget behind the sliding panel"),),
SlidingUpPanel(
panel: Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
myFirstVariable ? Text("This is a sliding Widget") : Container(),
mySecondVariable ? Text("This is another sliding Widget") : Container(),
],
),
)
)
],
)
);
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!
小SlidingUpPanel
部件不会根据其子部件调整其高度。
解决您的问题的方法是将 SingleChildScrollView 添加到面板内容中,并使用 panelBuilder 而不是 panel 属性。
panelBuilder 通过为您提供一个可以提供给 SingleChildScrollView 的控制器来承担管理滚动和滑动冲突的负担,您的代码将更改为如下所示:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("SlidingUpPanelExample"),
),
body: Stack(
children: <Widget>[
Center(child: Text("This is the Widget behind the sliding panel"),),
SlidingUpPanel(
panelBuilder:(sc) => SingleChildScrollView(
controller: sc,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
myFirstVariable ? Text("This is a sliding Widget") : Container(),
mySecondVariable ? Text("This is another sliding Widget") : Container(),
],
),
)
)
],
)
);
}
Run Code Online (Sandbox Code Playgroud)
这样,您不会遇到任何溢出问题,并且当面板的内容溢出时,SingleChildScrollView 将变得可滚动。
归档时间: |
|
查看次数: |
480 次 |
最近记录: |