Flutter - 自定义按钮点击区域
Flutter - Custom button tap area
我正在构建一个 Flutter 应用程序,其中大部分屏幕将被圆形按钮占据。
我已经尝试了几种不同的方法来创建一个圆形按钮,但我总是遇到同样的问题:'tappable' 区域实际上不是圆形的,而是矩形的。
这是一个用 FloatingActionButton
:
获得的例子
对于小尺寸的按钮,这并不是真正的问题 - 我什至会说它在某种程度上很有帮助 - 但在我的情况下它非常烦人。
所以我的问题是:是否可以将 'tappable' 区域限制为一个圆圈?
提前致谢。
这似乎可行,我不知道这样做是否正确,或者是否有更好的方法,但在这里。
class Test extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Container(
color: Colors.blue,
child: Center(
child: GestureDetector(
onTap: () {
print('clicky');
},
child: ClipOval(
child: Container(
width: 200,
height: 200,
color: Colors.red,
),
),
),
),
),
);
}
}
如果你想在点击时保持飞溅,你可以这样做:
Material(
color: Colors.green,
shape: CircleBorder(),
elevation: 5.0,
child: InkWell(
borderRadius: BorderRadius.circular(100.0),
onTap: () => print("here"),
child: Container(
height: 200.0,
width: 200.0,
decoration: BoxDecoration(
shape: BoxShape.circle,
),
child: Icon(Icons.receipt),
),
),
),
我正在构建一个 Flutter 应用程序,其中大部分屏幕将被圆形按钮占据。
我已经尝试了几种不同的方法来创建一个圆形按钮,但我总是遇到同样的问题:'tappable' 区域实际上不是圆形的,而是矩形的。
这是一个用 FloatingActionButton
:
对于小尺寸的按钮,这并不是真正的问题 - 我什至会说它在某种程度上很有帮助 - 但在我的情况下它非常烦人。
所以我的问题是:是否可以将 'tappable' 区域限制为一个圆圈?
提前致谢。
这似乎可行,我不知道这样做是否正确,或者是否有更好的方法,但在这里。
class Test extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Container(
color: Colors.blue,
child: Center(
child: GestureDetector(
onTap: () {
print('clicky');
},
child: ClipOval(
child: Container(
width: 200,
height: 200,
color: Colors.red,
),
),
),
),
),
);
}
}
如果你想在点击时保持飞溅,你可以这样做:
Material(
color: Colors.green,
shape: CircleBorder(),
elevation: 5.0,
child: InkWell(
borderRadius: BorderRadius.circular(100.0),
onTap: () => print("here"),
child: Container(
height: 200.0,
width: 200.0,
decoration: BoxDecoration(
shape: BoxShape.circle,
),
child: Icon(Icons.receipt),
),
),
),