gpt4 book ai didi

在 ListView 中使用时,Flutter Stack 小部件无法正确调整大小

转载 作者:IT王子 更新时间:2023-10-29 07:17:11 25 4
gpt4 key购买 nike

我正在尝试构建一个包含 Stack 小部件的 Card 列表,Card + Stack 小部件工作正常,直到我将它设为 ListView 的 subview ,然后 Stack 不再自动调整大小到其最大的 subview .这导致我的视​​图应该与右下角对齐,而不是右对齐,因为堆栈底部的大小不正确。

我已经尝试用 Align 包裹 Stack 的所有子项,但这也没有帮助。定位与对齐具有相同的结果。

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Stack Demo',
home: MyHomePage(),
);
}
}

class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) => Scaffold(
body: ListView(
children: <Widget>[
_buildCard(context),
_buildCard(context),
_buildCard(context),
_buildCard(context),
_buildCard(context),
_buildCard(context),
],
),
);

Widget _buildCard(BuildContext context) => Card(
child: Stack(
children: <Widget>[
SizedBox(
height: 200,
child: Container(
color: Colors.black,
),
),
Align(
alignment: Alignment.bottomRight,
child: SizedBox(
height: 50,
width: 50,
child: Container(
color: Colors.red,
),
),
),
],
),
);
}

我希望发生的事情是,Stack 会围绕黑色容器正确调整大小,从而使红色容器位于卡片的右下方。

最佳答案

也尝试在堆栈上设置对齐方式

alignment: AlignmentDirectional.bottomEnd,

喜欢这个

Widget _buildCard(BuildContext context) => Card(
child: Stack(
alignment: AlignmentDirectional.bottomEnd,
children: <Widget>[
SizedBox(
height: 200,
child: Container(
color: Colors.black,
),
),
Align(
alignment: Alignment.bottomRight,
child: SizedBox(
height: 50,
width: 50,
child: Container(
color: Colors.red,
),
),
),
],
),
);

screenshot

关于在 ListView 中使用时,Flutter Stack 小部件无法正确调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56994946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com