Style kanji meaning

This commit is contained in:
Oystein Kristoffer Tveit 2020-07-16 22:11:55 +02:00
parent e7662a1b88
commit 99256f6b3c
1 changed files with 62 additions and 10 deletions

View File

@ -1,7 +1,9 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class Meaning extends StatelessWidget { class Meaning extends StatelessWidget {
String _meaning; List<String> _meanings;
List<_MeaningCard> _meaningCards;
bool _expandable;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -11,18 +13,68 @@ class Meaning extends StatelessWidget {
vertical: 5.0, vertical: 5.0,
), ),
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: Wrap( child: _MeaningWrapper(context),
);
}
Widget _MeaningWrapper(BuildContext context) {
if (_expandable) {
return ExpansionTile(
initiallyExpanded: false,
title: Center(child: _MeaningCard('Meanings')),
children: [
SizedBox(
height: 20.0,
),
Wrap(
runSpacing: 10.0,
children: _meaningCards,
),
SizedBox(
height: 25.0,
),
],
);
} else {
return Wrap(
runSpacing: 10.0, runSpacing: 10.0,
children: _meaning children: _meaningCards,
.split(',') );
.map((meaning) => Container( }
margin: EdgeInsets.symmetric(horizontal: 10.0), }
child: Text(meaning),
)) Meaning(_meaning) {
.toList(), this._meanings = _meaning.split(', ');
this._meaningCards =
_meanings.map((meaning) => _MeaningCard(meaning)).toList();
this._expandable = (this._meanings.length > 6);
}
}
class _MeaningCard extends StatelessWidget {
final String _meaning;
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.symmetric(horizontal: 10.0),
padding: EdgeInsets.symmetric(
horizontal: 10.0,
vertical: 10.0,
),
child: Text(
_meaning,
style: TextStyle(
fontSize: 20.0,
color: Colors.white,
),
),
decoration: BoxDecoration(
color: Colors.grey,
borderRadius: BorderRadius.circular(10.0),
), ),
); );
} }
Meaning(this._meaning); _MeaningCard(this._meaning);
} }