android - 飞溅在容器/FlatButton 之外流动 - Flutter
问题描述
我试图让飞溅与我的 Container 具有相同的形状,该 Container 有一个 FlatButton 作为它的孩子。
按下时,飞溅当前填充不同的形状,如下所示:
我的小部件代码如下:
import 'package:flutter/material.dart';
class RoundedButton extends StatelessWidget {
const RoundedButton( {this.buttonColor, this.buttonTitle, @required this.onPressed});
final Color buttonColor;
final String buttonTitle;
final Function onPressed;
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.symmetric(vertical: 16.0),
height: 42.0,
width: 200.0,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30.0),
color: buttonColor,
),
child: FlatButton(
onPressed: onPressed,
child: Text(
buttonTitle,
style: TextStyle(
color: Colors.white
),
),
),
);
}
}
解决方案
您可以使用ClipRRect
小部件来剪辑带有圆角的底层小部件,并通过使用borderRadius
属性并传递与radius
父小部件相同的属性Container
,即,包裹FlatButton
withClipRRect
以达到所需的效果。下面的示例工作代码:
body: Container(
margin: EdgeInsets.symmetric(vertical: 16.0),
height: 42.0,
width: 200.0,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30.0),
color: Colors.red,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(30),
child: FlatButton(
onPressed: () {
print('pressed');
},
child: Text(
'Send',
style: TextStyle(
color: Colors.white
),
),
),
)
),
希望这能回答你的问题。
推荐阅读
- c# - 访问 AzureKeyVault
- mongodb - 在新创建的文档中创建新的子引用
- excel - 我想确定以黄色突出显示的按钮的正确代码
- javascript - 计算器未在控制台 HTML/JS 上显示结果
- pine-script - Pine 脚本输入字符串选项
- javascript - CSS:导出块
- python - Python:如何在读取多个文件时处理损坏的 gzip 文件
- kubernetes - 如何仅在给定部署的一个 pod 中添加注释?
- presto - 结构数组的 Presto 查询返回单个结构元素作为列而不是结构行
- language-agnostic - 光线从单个光源追踪整个 2D 网格