Flutter - Как исправить переполнение текста на карточке? - PullRequest
1 голос
/ 10 июля 2020

Я создаю приложение и хочу показать этот текст, но мне нужно поставить некоторый «предел», чтобы этого не произошло:

карта с переполнением

Итак, я попробовал несколько вещей (например, SizedBox для ограничения текста, AutoSizeText для изменения размера шрифта ... но я не знаю, как ограничить это и сделать это отзывчивым), но безрезультатно.

это код карты:

Card(
    child: Container(
      height: 120,
      child: Padding(
        padding: EdgeInsets.only(
          left: 15,
          right: 15,
          top: 10,
          bottom: 10,
        ),
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: <Widget>[
            ClipOval(
              child: Image.network(
                pedido.logomarca,
                height: 90,
                width: 90,
              ),
            ),
            Padding(
              padding: EdgeInsets.only(left: 20),
              child: Column(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: <Widget>[
                  SizedBox(
                    child: AutoSizeText(
                      pedido.nomefantasia.toUpperCase(),
                      style: TextStyle(
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                  ),
                  Row(
                    children: <Widget>[
                      ClipOval(
                        child: Container(
                          height: 10,
                          width: 10,
                          color: Colors.green,
                        ),
                      ),
                      Padding(
                        padding: EdgeInsets.only(
                          left: 8,
                        ),
                        child: Text(
                          pedido.statuspedidodescricao,
                          ),
                        ),
                      ),
                    ],
                  ),
                ],
              ),
            ),
            Center(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Text(
                    DateFormat('dd/MM/yyyy').format(pedido.datavenda),
                    style: TextStyle(
                      color: Colors.blueGrey,
                      fontSize: 14,
                    ),
                  ),
                  Padding(
                    padding: EdgeInsets.only(top: 10),
                    child: Text(
                      'R\$ ${pedido.valortotal.toStringAsFixed(2).replaceAll('.', ',')}',
                      style: TextStyle(
                        color: Colors.green[600],
                        fontSize: 16,
                      ),
                    ),
                  ),
                  telefone
                      ? OutlineButton(
                          onPressed: () {},
                          splashColor: Colors.green,
                          highlightColor: Colors.green,
                          highlightedBorderColor: Colors.green,
                          child: Row(
                            mainAxisAlignment:
                                MainAxisAlignment.spaceBetween,
                            children: <Widget>[
                              Text('Ligar'),
                              Padding(
                                padding: EdgeInsets.only(left: 3),
                                child: Icon(
                                  Icons.call,
                                  size: 15,
                                ),
                              ),
                            ],
                          ),
                        )
                      : Container(),
                ],
              ),
            ),
          ],
        ),
      ),
    ),
  ),

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Текст AutoSized имеет параметр, который необходимо установить. maxlines: 2

AutoSizeText(
  pedido.nomefantasia.toUpperCase(),
  maxlines: 2,
  style: TextStyle(
    fontWeight: FontWeight.bold,
  ),
),

Документация

0 голосов
/ 10 июля 2020

измените это:

Padding(
  padding: EdgeInsets.only(
    left: 8,
       ),
  child: Text(
         pedido.statuspedidodescricao,
         ),
 ),

на это:

    Expanded(
      child: Padding(
        padding: EdgeInsets.only(
          left: 8,
        ),
        child: Text(
          pedido.statuspedidodescricao,
          overflow: TextOverflow.ellipsis,
          maxLines: 1,
        ),
      ),
    )
...