#android #flutter #button
#Android #флаттер #кнопка
Вопрос:
привет всем, у меня есть простые кнопки — в моем приложении, и я протестировал его на lenove p2, note 4, k20 pro, и он работал отлично, но на OnePlus 5T OxygenOS V10 и Android V10 он не работал независимо от того, что я делаю, когда нажимаю на него, он не работает, как пустая кнопкавот код
void showPricingSheet(context , article){
List<int> quantities = [];
List<int> serviceIds = [];
List<double> totalPrices = [];
double currentTotalPrice = 0.0;
int servicesLength;
//theses variables will be used to store values locally then send them to server
Future<List<Prices>> _prices = _fetchPrices(article['id']);
bool alreadyExc = false;
showModalBottomSheet(
isDismissible: false,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.vertical(
top: Radius.circular(20),
),
),
context: context,
builder: (BuildContext context){
var responsivenessController = ResponsivenessController(context);
return StatefulBuilder(
builder: (BuildContext context , setState){
return FutureBuilder<List<Prices>>(
future: _prices,
builder: (context , snapshot){
if(snapshot.hasData){
List<Prices> price = snapshot.data;
if(alreadyExc == false){
// initializing the list with the length provided
servicesLength = price.length;
for(int i = 0; i < price.length; i ){
quantities.add(0);
serviceIds.add(price[i].serviceId);
totalPrices.add(0);
}
alreadyExc = true;
}
return Container(
padding: EdgeInsets.all(30),
child: Stack(
children: <Widget>[
ListView(
children: <Widget>[
Column(
children: <Widget>[
articleName(article),
Column(
children: List.generate(price.length, (index) =>
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Expanded(
child: Container(
padding: EdgeInsets.all(10),
child: Text(
translator.currentLanguage == 'ar' ?
'${price[index].serviceNameAr}'
:'${price[index].serviceNameEn}',
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: responsivenessController.bodyFont1,
),
),
),
),
Text('${price[index].price}' ,
style: TextStyle(
fontSize: responsivenessController.bodyFont1,
),
),
Container(
child: Row(
children: <Widget>[
// the problem is in this section
//
//
//
//
IconButton(
onPressed: (){
setState(() {
double oldPrice = (quantities[index] * price[index].price).toDouble();
quantities[index] = quantities[index] 1;
double newPrice = (quantities[index] * price[index].price).toDouble();
totalPrices[index] = newPrice.toDouble();
currentTotalPrice = (currentTotalPrice - oldPrice).toDouble();
currentTotalPrice = (currentTotalPrice newPrice).toDouble();
});
},
icon: Icon(Icons.add , color: Color(0xffff9900),),
),
Text(
'${quantities[index]}'
),
IconButton(
onPressed: (){
setState(() {
if(quantities[index] > 0){
double oldPrice = (quantities[index] * price[index].price).toDouble();
quantities[index] = quantities[index] - 1;
double newPrice = (quantities[index] * price[index].price).toDouble();
totalPrices[index] = newPrice.toDouble();
currentTotalPrice = (currentTotalPrice - oldPrice).toDouble();
currentTotalPrice = (currentTotalPrice newPrice).toDouble();
}
DoNothingAction();
});
},
icon: Icon(Icons.remove , color: Color(0xffff9900),),
),
//ends here
//
//
//
],
),
)
],
)
)
)
],
),
],
),
Align(
alignment: Alignment.bottomCenter,
child: Container(
width: DeviceInformation(context).width,
child: RaisedButton(
onPressed: currentTotalPrice <= 0.0 ? null
: (){
for(int i = 0; i < servicesLength; i ){
savePurchase(
article['id'],
serviceIds[i],
quantities[i],
totalPrices[i],
);
}
return _customStoredSuccessfully(context);
},
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10)),
color: Color(0xffff9900),
child: Text(
translator.currentLanguage == 'ar' ?
'اضافة ${currentTotalPrice.toStringAsFixed(2)} الى الطلب'
: 'Add ${currentTotalPrice.toStringAsFixed(2)} To Order',
style: TextStyle(color: Colors.white),
),
),
),
)
],
)
);
}
if(snapshot.hasError){
return SomeThingWrongHappened();
}
return LoadingIndicator();
},
);
},
);
}
);
}
как вы можете видеть, это простые кнопки, которые берут цену товара и добавляют ее или уменьшают ее из старого значения, а затем сохраняют в БД, однако проблема не в api, как упоминалось — кнопки, когда я нажимаю на них почти на всех устройствах, они работают отлично, но на 5t это не такпо какой-то причине работает
Примечание: у меня нет телефона 5t, поэтому я не могу подключить его к своему компьютеру для отладки