-1
votes

Paillonnez-vous surpris de ne pas être arrondi correctement arrondi

J'apprends à utiliser Flutter, et maintenant je suis tombé sur un problème lors du coiffant d'un bouton. Même les guides et les questions suivants ont demandé ici, mon bouton de style apparaît "buggé", probablement à cause d'un problème dans mon code. Vérifiez comment le bouton regarde maintenant:

 Entrez la description de l'image ici

Ceci est le code de mon bouton (le problème est là, car cela se produit même en montrant le bouton), Et je pense que le problème est dans le conteneur que j'ai à l'intérieur, ce qui est probablement faux, mais je ne peux pas réussir à trouver le problème: xxx


2 commentaires

Voulez-vous que ce bouton soit complètement rempli?


@LonelyWolf My Idée est que le gradient du bouton intérieur occupe la forme du bouton entière, ce qui est censé être légèrement rond, avec ce rayon de frontière.


3 Réponses :


1
votes

Vérifiez ce code

RaisedButton(
 padding: const EdgeInsets.all(0.0),
   shape: RoundedRectangleBorder(
   borderRadius: BorderRadius.circular(30.0),),
  onPressed: () {},
  textColor: Colors.white,
  child: Container(
    decoration: const BoxDecoration(
      shape: BoxShape.rectangle,
      borderRadius: BorderRadius.all(Radius.circular(30)),
      gradient: LinearGradient(
        colors: <Color>[
          Colors.purple,
          Color.fromARGB(1, 247, 120, 150),
        ],
      ),
    ),
    padding: const EdgeInsets.all(20.0),
    child: const Text('Empezar partida',
        style: TextStyle(
            fontSize: 20,
            color: Colors.white,
            fontWeight: FontWeight.bold)),
  ),
),


3 commentaires

Ne fonctionne pas non plus; Je vois toujours un rembourrage entre le conteneur interne (et son gradient) et le bouton réel: i.Imgur. com / jy1vp2j.png


Ajouter le rembourrage: EdgeInsets.Tous (0,0) Il retirera le rembourrage également ajouter de la forme pour le bouton surélevé Mettre à jour mon code de code


Je viens de la corriger en ajoutant des pompiers spécifiques pour toutes les directions! J'ai utilisé votre code et ajouté au conteneur () la ligne suivante: edgeinsets.Only (à gauche: 25,0, top: 18, bas: 18, droite: 25) maintenant ça marche bien :)



1
votes

Essayez ce code.

Container(
             height: 50.0,
             margin: EdgeInsets.all(10),
             child: RaisedButton(
               onPressed: () {},
               shape: RoundedRectangleBorder(
                   borderRadius: BorderRadius.circular(80.0)),
               padding: EdgeInsets.all(0.0),
               child: Ink(
                 decoration: BoxDecoration(
                     gradient: LinearGradient(
                       colors: [Color(0xff374ABE), Color(0xff64B6FF)],
                       begin: Alignment.centerLeft,
                       end: Alignment.centerRight,
                     ),
                     borderRadius: BorderRadius.circular(30.0)),
                 child: Container(
                   constraints:
                       BoxConstraints(maxWidth: 250.0, minHeight: 50.0),
                   alignment: Alignment.center,
                   child: Text(
                     "Gradient Button",
                     textAlign: TextAlign.center,
                     style: TextStyle(color: Colors.white, fontSize: 15),
                   ),
                 ),
               ),
             ),
           ),


2 commentaires

Celui-ci semble fonctionner! Ce n'est pas exactement comment je voulais l'afficher, mais c'est quelque chose. Quoi qu'il en soit, je vais mettre ma réponse depuis que les spécificités de mon problème sont résolus avec une autre chose. Je prépouvons votre solution de toute façon!


Veuillez accepter la réponse si cela résolvait votre problème. Merci.



0
votes

Avec l'aide de la solution de @ashwithsaldanha et @varunkiamani (vous avez mon upvote!), j'ai réussi à entrer dans une solution différente qui corrige mon problème bien: je viens d'utiliser mon conteneur (), edgetinsets.only () et fournissait les paramètres suivants pour la corriger:

      RaisedButton(
        padding: const EdgeInsets.all(0.0),
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(30.0),
        ),
        onPressed: () {},
        textColor: Colors.white,
        child: Container(
          decoration: const BoxDecoration(
            shape: BoxShape.rectangle,
            borderRadius: BorderRadius.all(Radius.circular(30)),
            gradient: LinearGradient(
              colors: <Color>[
                Colors.purple,
                Color.fromARGB(1, 247, 120, 150),
              ],
            ),
          ),
          padding:
              EdgeInsets.only(left: 27.0, top: 19, bottom: 19, right: 27),
          child: const Text('Empezar partida',
              style: TextStyle(
                  fontSize: 21,
                  color: Colors.white,
                  fontWeight: FontWeight.bold)),
        ),
      ),


2 commentaires

Vous avez toujours le même problème. Cette solution ne fonctionnera pas si votre texte est trop court. CODEPEN.IO/VARUNKAMANI/PEN/POGPBRPLe


C'est vrai, mais seulement pour un texte de 1 lettre. 2 ou 3 rendu joliment aussi, et il est réparable simplement de changer les paramètres de bordsInsets.Only (). Quelle solution plus générale que vous proposeriez? Si cela fait la même chose et travaille pour tous les cas de bord, je le choisirai comme la réponse correcte. Les réponses précédentes n'ont pas fourni le résultat attendu.