309 votes

Comment puis-je ajouter de l'ombre au widget dans Flutter ?

Comment puis-je ajouter une ombre au widget comme sur l'image ci-dessous?

Ceci est mon code de widget actuel.

Image avec ombre

0 votes

Prenez un coup d'œil

0 votes

Vous pouvez utiliser la pile

1 votes

Enveloppez votre widget avec le widget Material() et donnez elevation: 10.0

4voto

O Thạnh Ldt Points 167
class ShadowContainer extends StatelessWidget {
  ShadowContainer({
    Key key,
    this.margin = const EdgeInsets.fromLTRB(0, 10, 0, 8),
    this.padding = const EdgeInsets.symmetric(horizontal: 8),
    this.circular = 4,
    this.shadowColor = const Color.fromARGB(
        128, 158, 158, 158), //Colors.grey.withOpacity(0.5),
    this.backgroundColor = Colors.white,
    this.spreadRadius = 1,
    this.blurRadius = 3,
    this.offset = const Offset(0, 1),
    @required this.child,
  }) : super(key: key);

  final Widget child;
  final EdgeInsetsGeometry margin;
  final EdgeInsetsGeometry padding;
  final double circular;
  final Color shadowColor;
  final double spreadRadius;
  final double blurRadius;
  final Offset offset;
  final Color backgroundColor;

  @override
  Widget build(BuildContext context) {
    return Container(
      margin: margin,
      padding: padding,
      decoration: BoxDecoration(
        color: backgroundColor,
        borderRadius: BorderRadius.circular(circular),
        boxShadow: [
          BoxShadow(
            color: shadowColor,
            spreadRadius: spreadRadius,
            blurRadius: blurRadius,
            offset: offset,
          ),
        ],
      ),
      child: child,
    );
  }
}

4voto

Björn W Points 1

Peut-être que c'est suffisant si vous enveloppez un Card autour du Widget et jouez un peu avec la propriété elevation.

J'utilise ce truc pour rendre mon ListTile plus joli dans les Lists.

Pour votre code, cela pourrait ressembler à ceci :

return Card(
   elevation: 3, // JOUEZ AVEC CETTE VALEUR 
   child: Row(
      crossAxisAlignment: CrossAxisAlignment.center,
      children: [
         // ... PLUS DE VOTRE CODE 
      ],
   ),
);

-2voto

jay Points 7

Enveloppez votre widget dans un conteneur et attribuez-lui une liste d'ombres de boîtes.

1 votes

Cela ne fournit pas une réponse à la question. Une fois que vous avez suffisamment de réputation, vous pourrez commenter sur n'importe quel message; à la place, fournir des réponses qui ne nécessitent pas de clarification de la part de la personne qui pose la question. - De la révision

1 votes

Correct, but too vague. Add the code, so that people can basically just copy it into their own code and it'll work! From there, they can personalize it as they want. See below upvoted answer for an excellent example.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X