Текст внутри чернильницы с наложенным переполнением не работает, трепетание

#flutter #row

#flutter #строка

Вопрос:

Простой код, подобный приведенному ниже, не работает при TextOverflow — замените очень длинным текстом для «searchLocationAddress». Flutter 1.17.5. Все предоставленные решения — гибкие, расширяемые и т.д. — Терпят неудачу. Устранение неполадок сводится к чернильнице, если чернильница удалена, elipsis, fade и т. Д. Работают. При замене на GestureDetector возникает та же проблема, что и для InkWell — TextOverFlow не применяется. Каков наилучший способ переноса текста для обнаружения касания и действия и по-прежнему применять переполнение?

 Column(
    children: <Widget>[
      Container(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: <Widget>[
            InkWell(
              onTap: () => _navigateAndDisplaySelection(),
              child: Text(
                searchLocationAddress.isEmpty ||
                        searchLocationAddress == null
                    ? "No Location"
                    : searchLocationAddress,
                overflow: TextOverflow.ellipsis,
              ),
            )
          ],
        ),
      ),
    ],
  );
  

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

1. Ваша ширина динамична. Вы пробовали задать ширину для вашей строки, контейнера или столбца, чтобы можно было определить границы переполнения чернильницы?

Ответ №1:

Я понял — лучше всего обернуть чернильницу или GestureDector контейнером и расширенным или гибким. Нижеприведенное сработало для меня:

 Column(
children: <Widget>[
  Container(
    child: Row(
      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      children: <Widget>[
        Flexible(Wrap Container with Flexible or Expanded.
                      child: Container(//wrap InkWell with Container
            child: InkWell(
              onTap: () => _navigateAndDisplaySelection(),
              child: Text(
                searchLocationAddress.isEmpty ||
                        searchLocationAddress == null
                    ? "No Location"
                    : searchLocationAddress,
                overflow: TextOverflow.ellipsis,
              ),
            ),
          ),
        )
      ],
    ),
  ),
],
);