Флаттер показывает пространство, когда массив равен нулю [] и стиль не работает - PullRequest
1 голос
/ 22 апреля 2020

На моем экране данные [index] ['text'] показывают [], когда у них нет значения, но стиль не работает. Как мне показать пространство вместо [], когда его нет?

return ListTile(
     title: Html(data: """<br> """ + data[index]['id'] + ' - ' + data[index]['value'] + ' - ' + """ <span style="color: red"> """ + (data[index]['text']) + """ </b> """ + """ """),
     trailing: Icon(Icons.keyboard_arrow_right),
     onTap: () => Navigator.pushNamed(context, '/approve', arguments:
 data[index]['id'].toString()),
     isThreeLine: false,
     dense: true,
);

Ответы [ 2 ]

2 голосов
/ 22 апреля 2020

Читать о

1) операторы, поддерживающие нуль (альтернативное выражение, если ноль, сокращенное обозначение для троичного оператора)

2) интерполяция строк (чтобы избежать длинных конкатенаций)

Решение:

return ListTile(
  title: Html(
    data: "<br/> ${data[index]['id']} - ${data[index]['value']} - <b>${data[index]['text'] ?? "&nbsp;"}</b>"
  ),
  trailing: Icon(Icons.keyboard_arrow_right),
  onTap: () => Navigator.pushNamed(context, '/approve', arguments:
 data[index]['id'].toString()),
  isThreeLine: false,
  dense: true,
);
1 голос
/ 22 апреля 2020
return ListTile(
    title: Html(data: """<br> """ + data[index]['id'] + ' - ' + data[index]['value'] + ' - ' + """ <b> """ + (data[index]['text'] != null ? data[index]['text'] : " " )  + """ </b> """ + """ """),
    trailing: Icon(Icons.keyboard_arrow_right),
    onTap: () => Navigator.pushNamed(context, '/approve', arguments:
    data[index]['id'].toString()),
    isThreeLine: false,
    dense: true,
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...