Make kanji widgets squared

This commit is contained in:
Oystein Kristoffer Tveit 2022-01-23 16:25:43 +01:00
parent 9cea71a1a0
commit e994d73506
1 changed files with 38 additions and 15 deletions

View File

@ -5,18 +5,50 @@ import '../../../../routing/routes.dart';
class KanjiRow extends StatelessWidget {
final List<String> kanji;
final double fontSize;
const KanjiRow({
Key? key,
required this.kanji,
this.fontSize = 20,
}) : super(key: key);
Widget _kanjiBox(String kanji) => UnconstrainedBox(
child: IntrinsicHeight(
child: AspectRatio(
aspectRatio: 1,
child: BlocBuilder<ThemeBloc, ThemeState>(
builder: (context, state) {
final colors = state.theme.menuGreyLight;
return Container(
padding: const EdgeInsets.all(10),
alignment: Alignment.center,
decoration: BoxDecoration(
color: colors.background,
borderRadius: BorderRadius.circular(10),
),
child: FittedBox(
child: Text(
kanji,
style: TextStyle(
color: colors.foreground,
fontSize: fontSize,
),
),
),
);
},
),
),
),
);
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
'Kanji',
'Kanji:',
style: TextStyle(fontWeight: FontWeight.bold),
),
const SizedBox(height: 5),
@ -26,21 +58,12 @@ class KanjiRow extends StatelessWidget {
children: kanji
.map(
(k) => InkWell(
onTap: () => Navigator.pushNamed(context, Routes.kanjiSearch, arguments: k),
child: BlocBuilder<ThemeBloc, ThemeState>(
builder: (context, state) {
final colors = state.theme.menuGreyLight;
return Container(
padding: const EdgeInsets.all(10),
decoration: BoxDecoration(
color: colors.background,
borderRadius: BorderRadius.circular(10),
),
child:
Text(k, style: TextStyle(color: colors.foreground, fontSize: 25)),
);
},
onTap: () => Navigator.pushNamed(
context,
Routes.kanjiSearch,
arguments: k,
),
child: _kanjiBox(k),
),
)
.toList(),