#flutter #dart #instagram
#трепетание #dart #Instagram
Вопрос:
Я хочу, чтобы вокруг текста был фон, подобный видеороликам Instagram stories / tiktok. С пользовательским borderradius и цветом. Но когда я вижу, что для текста есть только цвет фона. Но это дает такой результат:
Я хочу этот результат:
Если использовать RichText с WidgetSpan, я получаю это:
Но я хочу, чтобы он обтекал текст, а не то, что контейнер представляет собой поле
Это код для последнего скриншота:
child: RichText(
text: WidgetSpan(
child: Container(
padding: EdgeInsets.all(6),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4),
color: Colors.blueAccent
),
child: Text(
providerItems.textItems[id].text ' | ' providerItems.textItems[id].id.toString(),
textAlign: TextAlign.center,
style: TextStyle(
//backgroundColor: Colors.blueAccent,
fontWeight: FontWeight.w500,
color: Colors.white,
fontSize: 26,
//backgroundColor: Colors.blue
),
),
)
),
),
Комментарии:
1. Можете ли вы опубликовать какой-нибудь код, чтобы продемонстрировать, как создается текст?
2. @kazume я опубликовал код
3. Мне кажется, что для получения такого эффекта вам придется создать что-то самостоятельно — по крайней мере, я не знаю ни одного виджета, который мог бы дать вам именно такой эффект. Думаю, CustomMultiChildLayout или что-то в этом роде.
Ответ №1:
Это может помочь:
Вы можете установить фон, как показано ниже:
TextStyle(
fontWeight: FontWeight.w600,
fontSize: 10,
background: Paint()
..strokeWidth = 12
..color = Colors.grey
..style = PaintingStyle.stroke
..strokeJoin = StrokeJoin.round
),
Но если вы уменьшите strokeWidth
, у вас останется пустое пространство во внутренней области, поскольку оно равно ширине внешнего штриха.