Merhaba;
stateful widget içerisinde bir butona basıldığında showModalBottomSheet içerisinde 3 adet radio button ve bir adet textbox var.
radio butonlara tıklandığında bir web servise gidip sorgulama yapıp list dönüyor ve ekrana yazdırıyorum. ancak radio butonlara bastığımda setstate tam anlamıyla çalışmıyor. textbox içerisine girip çıktığımda liste geliyor ve seçili radio butonun checked ı gözüküyor. sorun hakkında yardımcı olıur musunuz ?
isciliklerJsonList(turIDUrun);
return showModalBottomSheet<dynamic>(
isScrollControlled: true,
context: context,
builder: (BuildContext bc) {
return Wrap(children: <Widget>[
Container(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Text(
"Ürün veya İşçilik Ekleyin",
style:
TextStyle(fontSize: 15, fontWeight: FontWeight.bold),
),
Divider(
height: 20,
thickness: 2,
endIndent: 0,
color: Colors.brown,
),
],
),
),
),
KategoriYPLer(turIDUrun),
Container(
width: double.infinity,
height: MediaQuery.of(context).size.height * 0.7,
child: Container(
decoration: new BoxDecoration(
color: Colors.white,
borderRadius: new BorderRadius.only(
topLeft: const Radius.circular(25.0),
topRight: const Radius.circular(25.0),
),
),
child: urunListesiContainer(turIDUrun),
),
),
]);
}).whenComplete(() => _groupValue = "0");
}`
`isciliklerJsonList(turIDUrun) async {
ypTurID = turIDUrun.toString();
_qraracontroller.text = "";
String baseUrl = "";
baseUrl =
"https://xxxx.com/xxxx/api/JsonService.php?I=AltKategoriler&catID=" +
_groupValue.toString() +
'&ServisFirmaID=' +
servisfirmaID;
http.Response response = await http.get(Uri.parse(baseUrl));
if (response.statusCode == 200) {
var jsonData = json.decode(response.body);
setState(() {
iscilikTurID = "0";
iscilikcategoryItemlist = [
{"id": "0", "cat": "Kategori Seçin", "catID": "0", "anacatID": "0"}
];
iscilikcategoryItemlist = jsonData;
});
}
}`
`KategoriYPLer(tur) {
if (tur == 525) {
if (iscilikhangisi == "240") {
return Container(
child: Column(
children: [
Padding(
padding: const EdgeInsets.only(left: 0, right: 0),
child: Container(
child: Row(
children: [
Expanded(
flex: 4,
child: Container(
child: _myRadioButton2(
title: "Onarıldı İşç.",
value: "242",
onChanged: (newValue) {
_groupValue2 = newValue.toString();
iscilikTurID = newValue.toString();
_urunListesi(525);
unitCodeCtrlFocusNode.requestFocus();
setState(() {});
},
),
),
),
Expanded(
flex: 4,
child: Container(
child: _myRadioButton2(
title: "Bakım İşç.",
value: "244",
onChanged: (newValue) {
_groupValue2 = newValue.toString();
iscilikTurID = newValue.toString();
_urunListesi(525);
unitCodeCtrlFocusNode.requestFocus();
setState(() {});
},
),
),
),
Expanded(
flex: 3,
child: Container(
child: _myRadioButton2(
title: "Diğer",
value: "243",
onChanged: (newValue) {
_groupValue2 = newValue.toString();
iscilikTurID = newValue.toString();
_urunListesi(525);
unitCodeCtrlFocusNode.requestFocus();
setState(() {});
},
),
),
),
],
),
),
),
Container(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: TextFormField(
focusNode: unitCodeCtrlFocusNode,
onChanged: (value) {
_urunListesi(525);
setState(() {});
},
style: TextStyle(
fontSize: 14.0,
color: Colors.black,
),
controller: _qraracontroller,
autovalidateMode: AutovalidateMode.always,
decoration: const InputDecoration(
isDense: true, // Added this
contentPadding: EdgeInsets.all(8),
hintText: "Ne Aradığınızı Yazın",
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.brown,
width: 1.0,
),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.black45,
width: 1.0,
),
),
),
),
),
),
],
),
);
} else {
return Container(
child: Column(
children: [
Padding(
padding: const EdgeInsets.only(left: 2.0, right: 2),
child: Container(
child: Row(
children: [
Expanded(
flex: 5,
child: Container(
child: _myRadioButton2(
title: "Müşteri Hataları",
value: "319",
onChanged: (newValue) {
setState(() {
_groupValue2 = newValue.toString();
iscilikTurID = newValue.toString();
});
_urunListesi(525);
unitCodeCtrlFocusNode.requestFocus();
primaryFocus.unfocus(disposition: disposition);
setState(() {});
},
),
),
),
Expanded(
flex: 5,
child: Container(
child: _myRadioButton2(
title: "Servis Sorunları",
value: "320",
onChanged: (newValue) {
setState(() {
_groupValue2 = newValue.toString();
iscilikTurID = newValue.toString();
});
_urunListesi(525);
unitCodeCtrlFocusNode.requestFocus();
primaryFocus.unfocus(disposition: disposition);
setState(() {});
},
),
),
),
],
),
),
),
Container(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: TextFormField(
autofocus: true,
focusNode: unitCodeCtrlFocusNode,
onChanged: (value) {
_urunListesi(525);
setState(() {});
},
style: TextStyle(
fontSize: 14.0,
color: Colors.black,
),
controller: _qraracontroller,
autovalidateMode: AutovalidateMode.always,
decoration: const InputDecoration(
isDense: true, // Added this
contentPadding: EdgeInsets.all(8),
hintText: "Ne Aradığınızı Yazın",
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.brown,
width: 1.0,
),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.black45,
width: 1.0,
),
),
),
),
),
),
],
),
);
}
} else {
return Container(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
child: TextFormField(
focusNode: unitCodeCtrlFocusNode,
onChanged: (value) {
setState(() {
_urunListesi(tur);
});
setState(() {});
},
style: TextStyle(
fontSize: 14.0,
color: Colors.black,
),
controller: _qraracontroller,
autovalidateMode: AutovalidateMode.always,
decoration: const InputDecoration(
isDense: true, // Added this
contentPadding: EdgeInsets.all(8),
hintText: "Ne Aradığınızı Yazın",
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.brown,
width: 1.0,
),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.black45,
width: 1.0,
),
),
),
),
),
),
);
}
}```