Skip to content
Open
12 changes: 12 additions & 0 deletions demo/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'max_lines_demo.dart';
import 'min_font_size_demo.dart';
import 'overflow_replacement_demo.dart';
import 'preset_font_sizes_demo.dart';
import 'selectable_text_demo.dart';
import 'step_granularity.dart';
import 'sync_demo.dart';

Expand Down Expand Up @@ -43,6 +44,7 @@ List<MaterialColor> colors = [
Colors.lightBlue,
Colors.green,
Colors.blueGrey,
Colors.teal,
];

List<String> demoNames = [
Expand All @@ -52,6 +54,7 @@ List<String> demoNames = [
'StepGranularity',
'PresetFontSizes',
'OverflowReplacement',
'Text Selection',
];

class _DemoAppState extends State<DemoApp> {
Expand Down Expand Up @@ -138,6 +141,11 @@ class _DemoAppState extends State<DemoApp> {
title: Text('replacement'),
activeColor: colors[5],
),
BottomNavyBarItem(
icon: Icon(MdiIcons.selection),
title: Text('selection'),
activeColor: colors[6],
),
],
),
);
Expand All @@ -155,6 +163,10 @@ class _DemoAppState extends State<DemoApp> {
return StepGranularityDemo(_richText);
case 4:
return PresetFontSizesDemo(_richText);
case 5:
return OverflowReplacementDemo(_richText);
case 6:
return SelectableTextDemo(_richText);
default:
return OverflowReplacementDemo(_richText);
}
Expand Down
62 changes: 62 additions & 0 deletions demo/lib/selectable_text_demo.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
library selectable_text_demo.dart;

import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';

import 'animated_input.dart';
import 'text_card.dart';
import 'utils.dart';

/// A stateful widget to render SelectableTextDemo.
class SelectableTextDemo extends StatelessWidget {
const SelectableTextDemo(this.richText, {Key? key}) : super(key: key);

final bool richText;

@override
Widget build(BuildContext context) {
return AnimatedInput(
text: '"AutoSizeText.selectable" & "AutoSizeText.richSelectable"'
' widgets displays a string of text with a single style'
' or paragraphs with differently styled TextSpans.'
' It is similar to "SelectableText" & "SelectableText.rich", but uses AutoSizeText to render.',
builder: (input) {
return Row(
children: <Widget>[
Expanded(
child: TextCard(
title: 'AutoSizeText',
child: !richText
? AutoSizeText(
input,
style: TextStyle(fontSize: 30),
)
: AutoSizeText.rich(
spanFromString(input),
style: TextStyle(fontSize: 30),
),
),
),
SizedBox(width: 10),
Expanded(
child: TextCard(
title: 'AutoSizeText.selectable',
child: !richText
? AutoSizeText.selectable(
input,
style: TextStyle(fontSize: 30),
maxLines: 2,
)
: AutoSizeText.richSelectable(
spanFromString(input),
style: TextStyle(fontSize: 30),
maxLines: 2,
),
),
),
],
);
},
);
}
}
3 changes: 3 additions & 0 deletions lib/auto_size_text.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
library auto_size_text;

import 'dart:async';
import 'dart:ui' as ui show BoxHeightStyle, BoxWidthStyle;

import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart' show SelectableText;
import 'package:flutter/widgets.dart';

part 'src/auto_size_text.dart';
Expand Down
Loading