showModalBottomSheet刚刚注意到,当设置为时,顶部 SafeArea 被忽略isScrollControlled: true。(我希望我的模式适合屏幕)有人找到了修复它的方法吗?
showModalBottomSheet(
context: context,
isScrollControlled: true,
builder: (context) => MyModal(),
)
Run Code Online (Sandbox Code Playgroud)
我的测试模式
class MyModal extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SafeArea(
child: Column(
children: <Widget>[
Text('Modal'),
Expanded(
child: Container(
color: Colors.red,
))
],
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
输出
我通过设置模式内容的高度暂时修复了它
SafeArea(
child: Container(
height: MediaQuery.of(context).size.height - 80,
child: Column(
children: ...
Run Code Online (Sandbox Code Playgroud)
输出
我试图将每个切换按钮放入每个 gridview 容器中。基本上,在我的代码中,我的所有切换按钮都试图适合一个网格视图容器,而不是单独的网格视图容器。有什么办法可以将这两个小部件混合在一起吗?
GridView.count(
crossAxisCount: 2,
physics: NeverScrollableScrollPhysics(),
children: <Widget>[
Padding(
padding: const EdgeInsets.all(12.0),
child: ToggleButtons(
selectedColor: Colors.red,
isSelected: selected,
onPressed: onControlPress,
children: <Widget>[
Icon(Icons.info),
Icon(Icons.title),
Icon(Icons.info),
Icon(Icons.info),
],
),
),
],
),
Run Code Online (Sandbox Code Playgroud) 有什么方法可以在不进行任何硬编码的情况下将切换按钮动态扩展到父容器宽度。我找到了一个使用 MediaQuery 上下文的答案,该答案仅适用于全屏宽度。我还尝试将按钮包装在展开的小部件中,但这会引发错误
Container(
width: 150.0, // hardcoded for testing purpose
child: ToggleButtons(
constraints:
BoxConstraints.expand(width: MediaQuery.of(context).size.width), // this doesn't work once inside container unless hard coding it
borderRadius: BorderRadius.circular(5),
children: [
ShapeToggleButton(
text: 'Option1',
),
ShapeToggleButton(
text: 'Option2',
),
],
isSelected: [true, false],
onPressed: (index) {},
),
);
Run Code Online (Sandbox Code Playgroud) 我正在尝试更改未选择的切换按钮的背景颜色。我想背景颜色现在默认设置为透明,我无法更改它。我试图用扩展的彩色容器填充按钮,但这不起作用
这是图片
这是代码
Container(
child: ToggleButtons(
borderRadius: BorderRadius.circular(5),
selectedColor: Colors.white,
fillColor: Colors.blue,
//renderBorder: false,
children: [Text('Option1'), Text('Option2'), Text('Option3')],
isSelected: [true, false, false],
onPressed: (d) {},
),
)
Run Code Online (Sandbox Code Playgroud)