Использование расширенного или гибкого и переполнения ListTile все еще на 32 пикселя больше - PullRequest
0 голосов
/ 16 июня 2020

Независимо от того, использую ли я Wrap вместо Row. Гибкий или расширенный тоже не работают?

enter image description here

return ListTile(
      contentPadding: EdgeInsets.symmetric(vertical: 0.0, horizontal: 0.0),
      dense: true,
      title: Row(
        children: <Widget>[
          Icon(icon),
          Padding(
            padding: EdgeInsets.only(left: 8.0, top: 0.0, bottom: 0.0),
            child: Expanded(
              child: Text(
                googleplace.address,
                maxLines: 1,
                overflow: TextOverflow.ellipsis,
              ),
            ),
          )
        ],
      ),
      onTap: onTap,
    );

1 Ответ

2 голосов
/ 17 июня 2020

ListTile уже имеет способ использовать значок и текст, не помещая его в виджет Row

return ListTile(
  contentPadding: EdgeInsets.zero,
  dense: true,
  leading: Icon(icon), // put your icon here
  title: Text(
    googleplace.address,
    maxLines: 1,
    softWrap: true,
    overflow: TextOverflow.ellipsis,
  ),
  onTap: onTap,
);

Также в вашем коде, если вы хотите, чтобы строка правильно определяла расширяемый объект, вы должны сначала Расширяемый виджет, а затем отступы

Expanded(
  child: Padding(
    padding: EdgeInsets.only(left: 8.0, top: 0.0, bottom: 0.0),
    child: Text(
      googleplace.address,
      maxLines: 1,
      overflow: TextOverflow.ellipsis,
    ),
  )
),

Но я бы порекомендовал первый вариант, ListTile уже имеет конечные и ведущие встроенные виджеты, которые помогут вам с тем, что вы хотите

...