#flutter #dart
#flutter #dart
Вопрос:
У меня есть этот список строк:
final List<String> details;
Я хочу использовать текстовый виджет для печати строк в списке, вот как я сделал:
List<Product> products = [details: [
'7 ounces',
'Pack of 200 grams',
'Golden roasted' 'Nicely packed in its original Nescafe factory'
],],
используемый текстовый виджет:
Text( products.details[0], ),
При этом печатается только строка с индексом 0.
кто-нибудь может помочь?
Комментарии:
1. Как вы хотите это распечатать?
Ответ №1:
Если вы хотите, чтобы список был представлен в виде строки, вы можете просто отформатировать его с помощью join()
метода.
В вашем случае,
products.details.join(' ')
Результат: 200-граммовая упаковка золотистой обжарки весом 7 унций, красиво упакованная на оригинальной фабрике Nescafe
Вы можете использовать любой разделитель в параметре join
, который вставляется между каждым элементом string.
Дополнительная ссылка: https://api.flutter.dev/flutter/dart-core/Iterable/join.html
Ответ №2:
Используйте ListView.builder,
ListView.builder(
padding: const EdgeInsets.all(8),
itemCount: products.details.length,
itemBuilder: (BuildContext context, int index) {
return Text( products.details[index]);
}
);
Ответ №3:
Если вы знаете количество элементов, вы можете просто использовать эту опцию:
Text( '${products.details[0] ${products.details[1] ${products.details[2]}');
Или вы могли бы создать новый класс и переопределить toString()
метод. Что-то вроде этого:
class MyProducts {
List<Product> products = [details: [
'7 ounces',
'Pack of 200 grams',
'Golden roasted' 'Nicely packed in its original Nescafe factory'
],];
@override
String toString() {
return '${products.details[0] ${products.details[1] ${products.details[2]}'
}
}
И использовать его:
MyProducts myProducts = MyProducts();
Text( myProduct.toString() );
Ответ №4:
Text(products.details.toString())
или
Text(products.toString())
Комментарии:
1. Я уже пробовал это и показываю вот так: [7 унций, упаковка по 200 грамм, золотисто-коричневого цвета, красиво упакованный на оригинальной фабрике Nescafe] .. но я хочу, чтобы все строки были без скобок.
2. Строка v = значение; v = v.replaceAll(«[«, «»»); v = v.replaceAll(«]», «»);
3. отображается эта ошибка: метод ‘replaceAll’ не определен для типа ‘List’.