#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,
),
),
),
)
],
),
),
],
);