Alert Dialog mit Abgerundeten Ecken flattern
Ich versuche, erstellen Sie einen alert-dialog mit abgerundeten Ecken Flattern, wie unten screenshot. fügen Sie auch meinen code hier, aber meine Ausgabe ist genau das, unterscheidet sich von dem erwarteten. irgendjemand, bitte helft mir.
Erwartet Warnmeldung
mein code ist hier.
void _showAlert() {
AlertDialog dialog = new AlertDialog(
content: new Container(
width: 260.0,
height: 230.0,
decoration: new BoxDecoration(
shape: BoxShape.rectangle,
color: const Color(0xFFFFFF),
borderRadius: new BorderRadius.all(new Radius.circular(32.0)),
),
child: new Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
//dialog top
new Expanded(
child: new Row(
children: <Widget>[
new Container(
//padding: new EdgeInsets.all(10.0),
decoration: new BoxDecoration(
color: Colors.white,
),
child: new Text(
'Rate',
style: TextStyle(
color: Colors.black,
fontSize: 18.0,
fontFamily: 'helvetica_neue_light',
),
textAlign: TextAlign.center,
),
),
],
),
),
//dialog centre
new Expanded(
child: new Container(
child: new TextField(
decoration: new InputDecoration(
border: InputBorder.none,
filled: false,
contentPadding: new EdgeInsets.only(
left: 10.0, top: 10.0, bottom: 10.0, right: 10.0),
hintText: ' add review',
hintStyle: new TextStyle(
color: Colors.grey.shade500,
fontSize: 12.0,
fontFamily: 'helvetica_neue_light',
),
),
)),
flex: 2,
),
//dialog bottom
new Expanded(
child: new Container(
padding: new EdgeInsets.all(16.0),
decoration: new BoxDecoration(
color: const Color(0xFF33b17c),
),
child: new Text(
'Rate product',
style: TextStyle(
color: Colors.white,
fontSize: 18.0,
fontFamily: 'helvetica_neue_light',
),
textAlign: TextAlign.center,
),
),
),
],
),
),
);
showDialog(context: context, child: dialog);
}
}
Die Ausgabe, die ich von den oben genannten code ist.
- ich weiß nicht warum, aber das Ergebnis hat mich zum lachen so schwer
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den container, wo Sie die BoxDecoration ist im widget-Baum, unter dem alert-Dialogfeld. Was bedeutet, dass Sie sind Einstellung nur eine box, in die Polsterung Ihres Dialogs. Müssen Sie erstellen eine benutzerdefinierte AlertDialog/showDialog und legen Sie den Umkreis dort. In der benutzerdefinierten widget, das Sie auch die Schaltfläche Hinzugefügt und alles, wo Sie brauchen, um die Arbeit darüber hinaus, dass die Polsterung.
Wenn man die customShowDialog.dart-Datei in Ihr Projekt (gist.github.com) wo können Sie den radius hier
borderRadius: BorderRadius.all(Radius.circular(20.0))
- und nennen es wie folgt:Bekommen Sie so etwas wie dieses:
EDIT:
Obwohl Flattern in letzter Zeit eingeführt, die shape-Eigenschaft was würde Ihnen helfen, mit den abgerundeten Ecken, indem ein ShapeBorder mit z.B.
würden Sie noch brauchen, um schnell fügen Sie eine benutzerdefinierte widget für einige Anpassungen, wie benutzerdefinierte Polsterung, wie oben angegeben.
customAlertDialog
sollte die ersten-mit einer Kappe bedeckt.Obwohl ich bin spät dran mit der Lösung, aber das kann anderen helfen, nach ihm zu suchen. Die folgenden code-snippets details, wie es erreicht werden kann.
Die Ausgabe der code-snippet sieht wie folgt aus:
Dieser arbeitete für mich:
shape
- tag gehört zuDialog
oderAlertDialog
oder ähnliches.VERSUCHEN ADD
HTML:
Versuchen, diesen code :
hinzufügen
War ich bei der Suche diese Antworten, und keiner von Ihnen hat mir geholfen, das gewünschte Aussehen erreicht ist.
Ich bemerkte, dass es eine Standard-Polsterung, so dass alles, was ich Tat, war:
Ich überschrieb die
titlePadding
- Attribut, und es kam gerade Recht. Es gibt auch einecontentPadding
Attribut, wenn Sie irgendwelche Probleme mit diesem. Kopiert habe ich dies von einem meiner apps nur um zu zeigen, das Attribut, aber es gilt für diesen Fall als gut.