Я пытаюсь написать более простую версию приложения для покупок с использованием флаттера, но у меня возникла проблема при написании метода onPressed для кнопки, которая должна содержать значение переключаемой кнопки (у меня естьтри радиокнопки), чтобы в зависимости от его значения он переходил на другую страницу.Ниже приведен класс, описывающий первую страницу приложения
, класс MyAppState extends State
{int _selected = 0;
void onPressed()
{
//what to write??
}
void onChanged(int value)
{
setState(() {
_selected = value;
});
}
List<Widget> makeRadios()
{
List<Widget> list = new List<Widget>();
List names = new List(3);
names[0]="Women";
names[1]="Men";
names[2]="Children";
list.add(new Text(
"Category:",
style: TextStyle(
decoration: TextDecoration.underline,
fontSize: 25,
color: Colors.deepPurple,
),
));
for(int i=0;i<3;i++)
{
list.add(
new RadioListTile(
value: i,
title: Text(names[i]),
groupValue: _selected,
onChanged: (int value){onChanged(value);},
activeColor: Colors.deepPurple,
secondary: new Icon(Icons.shopping_basket),
));
}
list.add(new RaisedButton(
child: new Text(
"done!",
style: TextStyle(
fontSize :17.0,
color: Colors.white,
),
),
color:Colors.purpleAccent,
onPressed: onPressed,
shape: new RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(30.0)),
)
);
return list;
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
backgroundColor: Colors.purple,
title: new Text("Home page"),
),
body:
Center(
child:
new Container(
width: 500.0,
height:300,
color: Colors.white70,
alignment: Alignment.center,
child: new Column(
children:
makeRadios(),
),
),
),
);
}