Виджет не возвращает представление по условию Future во флаттере ⇐ Android
-
Anonymous
Виджет не возвращает представление по условию Future во флаттере
Виджет не возвращает вид. isAttrAssignedToProduct в этом методе я пытаюсь найти назначенный атрибут в таблице, если продукт существует в таблице, затем возвращаю true, и изображение будет увеличено в элементе списка на основе true или false. Моя база данных возвращает true или false при условии, но представление не отображается.
Виджет isAttrAssigned(int index){ Будущий результат = isAttrAssignedToProduct(index); вернуть FutureBuilder( будущее: результат, строитель: (контекст BuildContext, снимок AsyncSnapshot) { result.then((v){ debugPrint('БУДУЩАЯ ДОЛИНА ${v}'); атрибут (в); }); },); Виджет attr(bool v){ вернуть v==true?Container( ширина: 20,0, высота: 20,0, украшение: BoxDecoration( цвет: Цвета.желтый), дочерний элемент: Image.asset('assets/images/right.png'), ):Текст('df'); } Мой запрос работает нормально
Future isAttrAssignedToProduct(int index) async { List assd=new List(); пытаться{ assd = await dbHelper.queryReadGroupAssignedAttribute(productList[index][DatabaseHelper.columnpid]); если(assd.length>0){ // debugPrint('ASSIGNED ATTR PRESENT ${assd.length}'); вернуть истину; }еще{ вернуть ложь; } }поймать(е){ //debugPrint('ASSIGNED ATTR EXCEPTION ${e}'); вернуть ложь; } } Плитка «Мой список»
ListTile( contentPadding: EdgeInsets.only(слева: высота*0,03, справа: высота*0,03), onTap: (){ Navigator.push(контекст, MaterialPageRoute(builder: (context) => ProductDetails(pid: ProductList[index]["pid"],), настройки: RouteSettings(имя: '/productdetail')),).then((value){ setState(() { длина = значение; }); debugPrint('CEHCBACK FROM DAETAIL $length'); }); }, Название: Текст( '${title}', стиль: TextStyle (fontFamily: 'полужирный', цвет: MyColors.colorPrimaryDark,fontSize: 18.0)), субтитры: Текст( 'Цена \$${цена}', стиль: TextStyle (цвет: Colors.grey,fontSize: 14.0,fontFamily: 'полужирный')), Trailing:isAttrAssigned(index), //здесь я пытаюсь раздуть изображение ),
Виджет не возвращает вид. isAttrAssignedToProduct в этом методе я пытаюсь найти назначенный атрибут в таблице, если продукт существует в таблице, затем возвращаю true, и изображение будет увеличено в элементе списка на основе true или false. Моя база данных возвращает true или false при условии, но представление не отображается.
Виджет isAttrAssigned(int index){ Будущий результат = isAttrAssignedToProduct(index); вернуть FutureBuilder( будущее: результат, строитель: (контекст BuildContext, снимок AsyncSnapshot) { result.then((v){ debugPrint('БУДУЩАЯ ДОЛИНА ${v}'); атрибут (в); }); },); Виджет attr(bool v){ вернуть v==true?Container( ширина: 20,0, высота: 20,0, украшение: BoxDecoration( цвет: Цвета.желтый), дочерний элемент: Image.asset('assets/images/right.png'), ):Текст('df'); } Мой запрос работает нормально
Future isAttrAssignedToProduct(int index) async { List assd=new List(); пытаться{ assd = await dbHelper.queryReadGroupAssignedAttribute(productList[index][DatabaseHelper.columnpid]); если(assd.length>0){ // debugPrint('ASSIGNED ATTR PRESENT ${assd.length}'); вернуть истину; }еще{ вернуть ложь; } }поймать(е){ //debugPrint('ASSIGNED ATTR EXCEPTION ${e}'); вернуть ложь; } } Плитка «Мой список»
ListTile( contentPadding: EdgeInsets.only(слева: высота*0,03, справа: высота*0,03), onTap: (){ Navigator.push(контекст, MaterialPageRoute(builder: (context) => ProductDetails(pid: ProductList[index]["pid"],), настройки: RouteSettings(имя: '/productdetail')),).then((value){ setState(() { длина = значение; }); debugPrint('CEHCBACK FROM DAETAIL $length'); }); }, Название: Текст( '${title}', стиль: TextStyle (fontFamily: 'полужирный', цвет: MyColors.colorPrimaryDark,fontSize: 18.0)), субтитры: Текст( 'Цена \$${цена}', стиль: TextStyle (цвет: Colors.grey,fontSize: 14.0,fontFamily: 'полужирный')), Trailing:isAttrAssigned(index), //здесь я пытаюсь раздуть изображение ),
Мобильная версия