Как узнать, состоит ли subtitle в SwitchListTile из двух или более строк?

#flutter #flutter-layout

#flutter #flutter-layout

Вопрос:

В isThreeLine есть свойство, вызываемое в SwitchListTile . Я хотел бы установить его значение в true , только если мой субтитр имеет длину в две или более строк. Откуда я это знаю?

 SwitchListTile(
  value: true,
  title: Text('Title'),
  subtitle: Text('This is going to be a subtitle which is two lines long with isThreeLine: true'),
  isThreeLine: false, // only set it to true when my subtitle is 2 or more lines long. 
  onChanged: null,
)
  

введите описание изображения здесь

введите описание изображения здесь


Примечание: я не ищу никаких обходных путей, таких как игра с общей длиной строки и т.д.

Комментарии:

1. С какой проблемой вы сталкиваетесь при его нормальном поведении?

2. @PratyushTiwari Как вы можете видеть, если мой субтитр длиннее строки, у меня остается очень мало места, но когда я устанавливаю isThreeLine: true , это выглядит хорошо.

3. Если вы ищете готовое решение, которое будет творить «магию» «игры» за вас, то нет, afaik, такого нет, хех. Если вы хотите «поиграть», вы можете взглянуть на LineMetrics и на эту статью о medium. Если это вам не по вкусу, то я предлагаю либо использовать SwitchListTile как есть, либо подойти к проблеме по-другому (например, вместо этого использовать столбец, строку, переключать, выравнивать и т.д.), Будет больше кода, но это цена за то, чтобы получить его именно таким, как вы хотите.