Mat*_*t R 0 popupmenu material-design flutter
在 Flutter 中,我想用圆形边框设计图标按钮的样式,并让 Material 涟漪效果正常工作,以便涟漪效果包含在圆圈中。在下面的代码中,第一个按钮工作正常。在第二个(弹出)按钮中,涟漪效果延伸到围绕按钮的正方形,而不是被限制在圆形边框上。
MaterialApp(
home: Scaffold(
body: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
decoration: BoxDecoration(
border: Border.all(color: Colors.black, width: 2),
shape: BoxShape.circle,
),
child: MaterialButton(
minWidth: 0,
padding: EdgeInsets.all(0.0),
child: Padding(
padding: EdgeInsets.all(11.0),
child: Icon(Icons.home, size: 27.0),
),
shape: CircleBorder(),
onPressed: () {},
),
),
PopupMenuButton<String>(
onSelected: (String action) {},
child: Container(
decoration: BoxDecoration(
border: Border.all(color: Colors.black, width: 2),
shape: BoxShape.circle,
),
child: Padding(
padding: EdgeInsets.all(11.0),
child: Icon(Icons.menu, size: 27.0),
),
),
itemBuilder: (BuildContext context) => [
PopupMenuItem<String>(child: ListTile(title: Text('Log Out'))),
],
),
],
),
),
),
);
Run Code Online (Sandbox Code Playgroud)
有没有办法让弹出按钮正常工作?
您需要使用ClipRRect,以及Material:
ClipRRect(
borderRadius: BorderRadius.circular(24),
child: Material(
color: Colors.transparent,
child: PopupMenuButton<String>(
...
Run Code Online (Sandbox Code Playgroud)
PopupMenuButton包裹child有InkWell,由于某种原因不剪切除非内还包裹Material。
| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |