Flutter,帮助设计带有可点击图标的可点击形状
Flutter, help on design a clickable shape with clickable icons
我是 Flutter 新手!
我需要实现如下图1的形状,用蓝色矩形圆角。我在 Xcode 和 Android Studio 上很容易,但我在 Flutter 上遇到了一些问题。
它非常简单...它是一个正方形,在图像下方有一个四边形,在来自后端的 html 文本下方。大 Icons.share 以及 Icons.mail_outline 和 Icons.favorite 必须是可点击的并生成动作。除了四边形、菱形之外,我还可以通过点击形状的左右部分来获得结果。
经过两天的 Container、Stack、Padding、Path 等测试,我仍然没有达到可接受的结果。
感谢任何帮助。
我这里给你排版了结果
这是代码
SizedBox(
height: 80,
child: Stack(
children: [
Align(
alignment: Alignment.bottomCenter,
child: Container(
color: Colors.grey.shade200,
height: 50,
child: Row(
children: [
const Spacer(flex: 1,),
Row(
children: [
const Text('Ti piace?'),
IconButton(icon: const Icon(CupertinoIcons.heart),
onPressed: (){
//do what you want
},),
const Text('0'),
],
),
const Spacer(flex: 2,),
Row(
children: [
const Text('0'),
IconButton(icon: const Icon(Icons.mail_outline),
onPressed: (){
//do what you want
},),
const Text('Contattami'),
],
),
const Spacer(flex: 1,),
]
),
),
),
Align(
alignment: Alignment.center,
child: RotationTransition(
turns: const AlwaysStoppedAnimation(45 / 360),
child: Container(
height: 45,
width: 45,
decoration: const BoxDecoration(
color: Colors.white,
boxShadow: [
BoxShadow(color: Colors.grey,spreadRadius: 2,blurRadius: 5),
]
),
child: RotationTransition(
turns: const AlwaysStoppedAnimation(-45 / 360),
child: IconButton(onPressed: (){}, icon: const Icon(Icons.share)))),
),
)
],
),
),
我是 Flutter 新手! 我需要实现如下图1的形状,用蓝色矩形圆角。我在 Xcode 和 Android Studio 上很容易,但我在 Flutter 上遇到了一些问题。
它非常简单...它是一个正方形,在图像下方有一个四边形,在来自后端的 html 文本下方。大 Icons.share 以及 Icons.mail_outline 和 Icons.favorite 必须是可点击的并生成动作。除了四边形、菱形之外,我还可以通过点击形状的左右部分来获得结果。
经过两天的 Container、Stack、Padding、Path 等测试,我仍然没有达到可接受的结果。
感谢任何帮助。
我这里给你排版了结果
这是代码
SizedBox(
height: 80,
child: Stack(
children: [
Align(
alignment: Alignment.bottomCenter,
child: Container(
color: Colors.grey.shade200,
height: 50,
child: Row(
children: [
const Spacer(flex: 1,),
Row(
children: [
const Text('Ti piace?'),
IconButton(icon: const Icon(CupertinoIcons.heart),
onPressed: (){
//do what you want
},),
const Text('0'),
],
),
const Spacer(flex: 2,),
Row(
children: [
const Text('0'),
IconButton(icon: const Icon(Icons.mail_outline),
onPressed: (){
//do what you want
},),
const Text('Contattami'),
],
),
const Spacer(flex: 1,),
]
),
),
),
Align(
alignment: Alignment.center,
child: RotationTransition(
turns: const AlwaysStoppedAnimation(45 / 360),
child: Container(
height: 45,
width: 45,
decoration: const BoxDecoration(
color: Colors.white,
boxShadow: [
BoxShadow(color: Colors.grey,spreadRadius: 2,blurRadius: 5),
]
),
child: RotationTransition(
turns: const AlwaysStoppedAnimation(-45 / 360),
child: IconButton(onPressed: (){}, icon: const Icon(Icons.share)))),
),
)
],
),
),