fix tag overflow

This commit is contained in:
deltamaya
2024-10-29 19:04:51 +08:00
parent c4dc12e050
commit 0db633a9d9

View File

@@ -405,9 +405,17 @@ class _ComicDescription extends StatelessWidget {
height: 4, height: 4,
), ),
if (tags != null) if (tags != null)
LayoutBuilder(builder: (context, constraints) { Expanded(
child: LayoutBuilder(builder: (context, constraints) {
if (constraints.maxHeight < 22) {
return Container();
}
int cnt = (constraints.maxHeight - 22).toInt() ~/ 25;
return Container( return Container(
constraints: const BoxConstraints(maxHeight: 47), clipBehavior: Clip.antiAlias,
height: 22 + cnt * 25,
width: double.infinity,
decoration: const BoxDecoration(),
child: Wrap( child: Wrap(
runAlignment: WrapAlignment.start, runAlignment: WrapAlignment.start,
clipBehavior: Clip.antiAlias, clipBehavior: Clip.antiAlias,
@@ -418,7 +426,7 @@ class _ComicDescription extends StatelessWidget {
for (var s in tags!) for (var s in tags!)
Container( Container(
height: 22, height: 22,
padding: const EdgeInsets.fromLTRB(3,2,3,2), padding: const EdgeInsets.fromLTRB(3, 2, 3, 2),
constraints: BoxConstraints( constraints: BoxConstraints(
maxWidth: constraints.maxWidth * 0.45, maxWidth: constraints.maxWidth * 0.45,
), ),
@@ -431,6 +439,8 @@ class _ComicDescription extends StatelessWidget {
borderRadius: borderRadius:
const BorderRadius.all(Radius.circular(8)), const BorderRadius.all(Radius.circular(8)),
), ),
child: Center(
widthFactor: 1,
child: Text( child: Text(
enableTranslate enableTranslate
? TagsTranslation.translateTag(s) ? TagsTranslation.translateTag(s)
@@ -439,12 +449,13 @@ class _ComicDescription extends StatelessWidget {
softWrap: true, softWrap: true,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
maxLines: 1, maxLines: 1,
)), ))),
], ],
), ),
); ).toAlign(Alignment.topCenter);
}), }),
const Spacer(), ),
// const Spacer(),
if (rating != null) StarRating(value: rating!, size: 18), if (rating != null) StarRating(value: rating!, size: 18),
Row( Row(
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end,