Listview в диалоге, вписывается в текст - PullRequest
0 голосов
/ 15 марта 2020

У меня есть это настраиваемое диалоговое окно, содержащее 2 строки (один заголовок, одно содержимое), и я sh сделаю содержимое видимым в виде списка для длинных строк. Это то, что у меня есть:

@override
  dialogContent(BuildContext context) {
    return Stack(
      children: <Widget>[
        Container(
          padding: EdgeInsets.only(
            top: Consts.avatarRadius + Consts.padding,
            bottom: Consts.padding,
            left: Consts.padding,
            right: Consts.padding,
          ),
          margin: EdgeInsets.only(top: Consts.avatarRadius),
          decoration: new BoxDecoration(
            color: Colors.white,
            shape: BoxShape.rectangle,
            borderRadius: BorderRadius.circular(Consts.padding),
            boxShadow: [
              BoxShadow(
                color: Colors.black26,
                blurRadius: 10.0,
                offset: const Offset(0.0, 10.0),
              ),
            ],
          ),
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              Text(
                title,
                style: TextStyle(
                  fontSize: 28.0,
                  fontWeight: FontWeight.bold,
                  fontFamily: "Rubik1",
                ),
              ),
              SizedBox(height: 16.0),
              Container(
                child: ListView(
                  shrinkWrap: true,
                  children: <Widget>[
                    Text(
                      description,
                      textAlign: TextAlign.center,
                      style: TextStyle(
                        fontSize: 24.0,
                        fontFamily: "Rubik1",
                      ),
                    ),
                    SizedBox(height: 24.0),
                    Align(
                      alignment: Alignment.center,
                      child: RaisedButton(
                        shape: new RoundedRectangleBorder(
                            borderRadius: new BorderRadius.circular(16.0),
                            side: BorderSide(color: Colors.blue)),
                        onPressed: () {
                          Navigator.of(context).pop(); // To close the dialog
                        },
                        textColor: Colors.white,
                        color: Colors.blue,
                        child: Text(
                          buttonText,
                          style: TextStyle(
                              fontSize: 24.0, fontWeight: FontWeight.bold),
                        ),
                      ),
                    ),
                  ],
                ),
              ),
            ],
          ),
        ),
        Positioned(
            left: MediaQuery.of(context).size.width / 4,
            child: CircleAvatar(
              backgroundImage: AssetImage(picture),
              radius: Consts.avatarRadius,
              backgroundColor: Colors.transparent,
            )),
      ],
    );
  }

проблема в том, что строка слишком длинная =>

overflow

Проблема в том, что нижнее переполнение из-за длины строки.

Есть предложения о том, как заставить это работать? Спасибо

1 Ответ

1 голос
/ 15 марта 2020

Вы можете использовать эту Библиотеку , чтобы предотвратить проблему визуализации виджетов

   AutoSizeText(
                    "description",
                    textAlign: TextAlign.center,
                   minFontSize: 18,
                   maxLines: 16,
                   overflow: TextOverflow.ellipsis,
                    style: TextStyle(
                      fontSize: 24.0,
                      fontFamily: "Rubik1",
                    ),
                ),
...