Печать списка строк в текстовом виджете

#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’.