有没有办法使长文本适合小窗口小部件?

时间:2019-03-25 17:44:39

标签: android flutter

我正在制作一个笔记应用程序,其中包含不同大小的笔记。有什么办法可以设置音符的最大和最小高度。我认为交错的视图不会有帮助!

SliverGrid(
  gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
    crossAxisCount: notesview,
  ),
  delegate: SliverChildBuilderDelegate(
    (BuildContext context, int index) {
      if (index < notes.length) {
        EdgeInsets.all(10);
        return notes[(notes.length - 1) - index];
      }
    },
  ),
),

这是我的注释“自定义”小部件: 通常是将注释带到编辑页面的按钮,对于文本,只要我粘贴了一个较长的文本,就超过了图块限制,如果问题出在上部网格视图或注释本身中,我就不会这样做。

class _CustomCardState extends State<CustomCard> {
  double font = 13;
  var now = new DateTime.now();
  var formatter = new DateFormat('yyyy-MM-dd' + ' At ' + 'H:m');
  String date;

  @override
  Widget build(BuildContext context) {
    date = formatter.format(now);
    return new Card(
      color: widget._color,
      elevation: 2,
      margin: EdgeInsets.all(5),
      child: RaisedButton(
        splashColor: Colors.blueAccent,
        elevation: 10,
        onPressed: () {
          Navigator.pushReplacement(
              context,
              new MaterialPageRoute(
                  builder: (context) =>
                      EditNote(2, widget.index, widget._title)));
        },
        color: widget._color,
        padding: EdgeInsets.only(left: 5, top: 5),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: <Widget>[
            Column(
              mainAxisSize: MainAxisSize.min,
              mainAxisAlignment: MainAxisAlignment.start,
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: <Widget>[
                new Text("${widget._title}" + " => ${widget.index}",
                    style: new TextStyle(
                      fontSize: font,
                    )),
              ],
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.end,
              crossAxisAlignment: CrossAxisAlignment.end,
              mainAxisSize: MainAxisSize.max,
              children: <Widget>[
                Padding(
                  padding: EdgeInsets.only(bottom: 5, top: 5, right: 5),
                  child: Align(
                    alignment: Alignment(1, 0),
                    child: Text('$date',
                        style: new TextStyle(
                          fontSize: font,
                          color: Colors.grey,
                        )),
                  ),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}
```

1 个答案:

答案 0 :(得分:0)

您可以使用SingleChildScrollView

包装包含太长文本的窗口小部件。

String longText = "Longgggggggggggggggggggggggg text";

                  Tooltip(// onPress to text it shows the full text.
                    message: longText,
                    child: Text(
                      longText.length < 20
                          ? longText
                          : longText.substring(0, 16) + '...',
                      // I divide my text in my case 16 length was enough.
                      style: TextStyle(
                          fontWeight: FontWeight.bold, color: Colors.white),
                    ),
                  )