-1

Acutal

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris non mauris nulla. Nam euismod condimentum erat, tempor efficitur quam. Aliquam commodo pretium libero vel interdum. Quisque suscipit a massa suscipit auctor. Maecenas faucibus mattis interdum. Duis lacinia turpis at tortor aliquet, sit amet consequat nibh molestie. Vestibulum sit amet placerat sapien. Cras efficitur orci massa, non mattis nunc laoreet porta. Maecenas purus lacus, consectetur ac lorem et, pulvinar venenatis neque. Quisque hendrerit sagittis rutrum. Sed et suscipit elit. Donec in lectus in nisi vestibulum venenatis at eu nisi. Phasellus diam est, varius ac odio ac, facilisis hendrerit sapien.

Expected

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris non mauris nulla. Nam euismod condimentum erat, tempor efficitur quam. Aliquam commodo pretium libero vel interdum. Quisque suscipit a massa suscipit auctor. Maecenas faucibus mattis interdum. Duis lacinia turpis at tortor aliquet, sit amet consequat nibh molestie. Vestibulum sit amet placerat sapien. Cras...

Note

  • No readmore feature
4

3 回答 3

1

您可以使用溢出属性来获得此效果

Expanded(
    child: Text(
      "Any Large Text",
      maxLines: 5,
      overflow: TextOverflow.ellipsis,
   ),
);

确保使用 Expanded 包装 Text 小部件。

您还可以尝试其他属性,例如minLines或其他形式的溢出,例如TextOverflow.fadeTextOverflow.clip。

于 2021-06-08T07:24:42.090 回答
1

您可以通过与小部件的属性maxLines结合使用来实现此目的。overflowText

在此处输入图像描述

import 'package:flutter/material.dart';

class TextExample extends StatelessWidget {
  const TextExample({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        margin: EdgeInsets.all(16),
        alignment: Alignment.center,
        child: Text(
          'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris non mauris nulla. Nam euismod condimentum erat, tempor efficitur quam. Aliquam commodo pretium libero vel interdum. Quisque suscipit a massa suscipit auctor. Maecenas faucibus mattis interdum. Duis lacinia turpis at tortor aliquet, sit amet consequat nibh molestie. Vestibulum sit amet placerat sapien. Cras efficitur orci massa, non mattis nunc laoreet porta. Maecenas purus lacus, consectetur ac lorem et, pulvinar venenatis neque. Quisque hendrerit sagittis rutrum. Sed et suscipit elit. Donec in lectus in nisi vestibulum venenatis at eu nisi. Phasellus diam est, varius ac odio ac, facilisis hendrerit sapien.',
          maxLines: 6,
          overflow: TextOverflow.ellipsis,
          textAlign: TextAlign.justify,
        ),
      ),
    );
  }
}
于 2021-06-08T07:25:02.483 回答
1
String text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris non mauris nulla. Nam euismod condimentum erat, tempor efficitur quam. Aliquam commodo pretium libero vel interdum. Quisque suscipit a massa suscipit auctor. Maecenas faucibus mattis interdum. Duis lacinia turpis at tortor aliquet, sit amet consequat nibh molestie. Vestibulum sit amet placerat sapien. Cras efficitur orci massa, non mattis nunc laoreet porta. Maecenas purus lacus, consectetur ac lorem et, pulvinar venenatis neque. Quisque hendrerit sagittis rutrum. Sed et suscipit elit. Donec in lectus in nisi vestibulum venenatis at eu nisi. Phasellus diam est, varius ac odio ac, facilisis hendrerit sapien.';
  
  bool readMore = false;
  
  @override
  Widget build(BuildContext context) {
    return RichText(
      text: TextSpan( //change 200 to required length
  text : text.length>200 && readMore ? text : text.substring(0,200),
    children: <TextSpan>[
      text.length > 200 ?
      TextSpan(text: readMore?
               ' Show Less' : '...Read More...', style: TextStyle(color: Colors.blue,),
              recognizer: TapGestureRecognizer()..onTap = () {
      setState((){
        readMore = !readMore;
      });
    },
              ) :null,
    ]
  ), 
      );
  }

飞镖游戏截图

在此处输入图像描述 在此处输入图像描述

于 2021-06-08T07:36:17.667 回答