Я пытался создать рельефную кнопку с закругленным углом и градиентным фоном, но безуспешно. Я могу реализовать только одно или другое. Прошло 2 часа, и я сам не нашел решения о том, как совместить закругленный угол и градиентный фон.
Ниже приведены мои коды моей последней попытки реализовать выпуклую кнопку с закругленным углом и градиентным фоном.
Пользовательский класс GradientButton
class RaisedGradientButton extends StatelessWidget {
final Widget child;
final Gradient gradient;
final double width;
final double height;
final Function onPressed;
const RaisedGradientButton({
Key key,
@required this.child,
this.gradient,
this.width = double.infinity,
this.height = 50.0,
this.onPressed,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: width,
height: 50.0,
decoration: BoxDecoration(
gradient: new LinearGradient(
colors: [
Colors.blue,
Colors.red,
],
begin: FractionalOffset.centerLeft,
end: FractionalOffset.centerRight,
),
),
child: Material(
shape: new RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(128.0)),
// color: Colors.transparent,
child: InkWell(
onTap: onPressed,
child: Center(
child: child,
)),
),
);
}
}
Как я использую приведенный выше код:
RaisedGradientButton(
onPressed: navigateToNextPage,
child: Text("Select Community"),
)
Как это выглядит:
Как вы можете видеть, градиент есть, но когда я пытаюсь создать закругленный угол, он перекрывается, а градиент позади.