I / flutter (17109): было выброшено еще одно исключение: RenderFlex переполнен на 80 пикселей справа - PullRequest
0 голосов
/ 17 февраля 2019

Я использую представление списка с карточками, но мне нужно поместить ленту в левую сторону

Ошибка:

I/flutter (17109): Another exception was thrown: A RenderFlex overflowed by 80 pixels on the right.
I/flutter (17109): Another exception was thrown: A RenderFlex overflowed by 2.0 pixels on the right.
I/flutter (17109): Another exception was thrown: A RenderFlex overflowed by 63 pixels on the right.
I/flutter (17109): Another exception was thrown: A RenderFlex overflowed by 19 pixels on the right.
I/flutter (17109): Another exception was thrown: A RenderFlex overflowed by 80 pixels on the right.
I/flutter (17109): Another exception was thrown: A RenderFlex overflowed by 2.0 pixels on the right

App Image

Вид списка построителя элементов кода

Dismissible(
  onDismissed: (direction){
    launch("tel:0${snapshot.data[index].celular}");
  },
  background: Card(
    color: hexToColor("#25D366"),
    child: Padding(padding: EdgeInsets.all(3.0),
    child: Align(
      alignment:Alignment.centerRight,
      child: Icon(Icons.phone, color: Colors.white, size: 35.0,),
    ),
    )
  ),
  direction: DismissDirection.endToStart,
  key: Key(DateTime.now().millisecondsSinceEpoch.toString()),
  child: Card(
      margin: EdgeInsets.symmetric(
          horizontal: 5.0, vertical: 4.0),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.start,
        children: <Widget>[
          Container(
            width: 8.0,
            height: 110.0,
            color: Colors.green,
            child: Card(

            ),

          ),
          Padding(
            padding: EdgeInsets.only(
                left: 1.0,
                top: 7.0,
                right: 5.0,
                bottom: 5.0),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                Text("CLIENTE: " + snapshot.data[index].nomeCliente, style: TextStyle(fontWeight: FontWeight.bold,color: Colors.blueGrey),),
                Text("CONTATO: " + snapshot.data[index].contato,style: TextStyle(fontWeight: FontWeight.bold,color: Colors.blueGrey),),
                Text("DESCRIÇAO: " + snapshot.data[index].descricaoOS,style: TextStyle(fontWeight: FontWeight.bold,color: Colors.blueGrey),),
                Text("CELULAR: " +snapshot.data[index].celular,style: TextStyle(fontWeight: FontWeight.bold,color: Colors.blueGrey),),
                Row(
                  mainAxisAlignment:
                  MainAxisAlignment.end,
                  children: <Widget>[
                    Container(
                      margin: EdgeInsets.only(
                          bottom: 0.0, top: 0.0),
                      width: 25.0,
                      height: 30.0,
                      decoration: BoxDecoration(
                        shape: BoxShape.rectangle,
                        image: DecorationImage(
                            image: AssetImage(
                                snapshot.data[index].origemOS == "INTERNO"?"images/interno.png":"images/carro.png"
                            )),
                      ),
                    ),
                    Text(
                      "OS: " +
                          snapshot.data[index].numOS
                              .toString(),
                      style: TextStyle(
                          fontWeight: FontWeight.bold,
                          color: hexToColor("#90B348")),
                    ),
                  ],
                ),
              ],
            ),
          )
        ],
      ),
  ),
);

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Тебе нужно завернуть тебя в ряд, дети - Padding с Expanded Виджет.

Dismissible(
      onDismissed: (direction) {
        // launch("tel:0123");
      },
      background: Card(
          color: Colors.grey,
          child: Padding(
            padding: EdgeInsets.all(3.0),
            child: Align(
              alignment: Alignment.centerRight,
              child: Icon(
                Icons.phone,
                color: Colors.white,
                size: 35.0,
              ),
            ),
          )),
      direction: DismissDirection.endToStart,
      key: Key(DateTime.now().millisecondsSinceEpoch.toString()),
      child: Card(
        margin: EdgeInsets.symmetric(horizontal: 5.0, vertical: 4.0),
        child: Row(
          mainAxisAlignment: MainAxisAlignment.start,
          children: <Widget>[
            Container(
              width: 8.0,
              height: 110.0,
              color: Colors.green,
              child: Card(),
            ),
            Expanded(      //Add this - wrap second Child with Expanded
              child: Padding(
                padding:
                    EdgeInsets.only(left: 1.0, top: 7.0, right: 5.0, bottom: 5.0),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                 ......//Code Cont
0 голосов
/ 17 февраля 2019

Обтекание текста в FittedBox со свойством fit, установленным на BoxFit.fit, работает очень хорошо для автоматической настройки размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...