gpt4 book ai didi

flutter - 使分频器匹配收缩包装容器的宽度?

转载 作者:行者123 更新时间:2023-12-03 04:58:35 24 4
gpt4 key购买 nike

我要构建一个小部件,其中包含两个Text小部件和一个Divider小部件,它们垂直堆叠。 Divider的宽度应与两个Text小部件的宽度相同。整个组合窗口小部件不应占用比其可见元素更多的布局空间。也就是说,应该将其收缩包装。

我希望它看起来像下图:

enter image description here

(我在这里添加了浅灰色背景,只是使我想要的边界框更加明显。)

我不清楚如何同时强制窗口小部件层次结构假定文本的自然最大宽度,同时又使Divider扩展到仅与文本宽度一样大的宽度。如果可能的话,我希望不编写任何自定义布局窗口小部件,也不必在第一次布局或渲染过程之后使用窗口小部件的尺寸直接为Divider分配宽度,从而做到这一点。

这是我在DartPad(https://dartpad.dev/flutter)中尝试过的一些代码,但是,自然地,它并没有达到预期的效果:

import 'package:flutter/material.dart';

void main() {
runApp(MyApp());
}

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
Text("Lorem ipsum"),
Text("dolor"),
Divider(thickness: 1.0, color: Colors.red),
]),
)));
}
}

我的最终目标是拥有可在Android Studio 3.5.3(Windows 10 64位)上运行的代码。
如何修复(或替换)我的代码以完成此任务?

最佳答案

使用IntrinsicWidth参见https://medium.com/flutter-community/flutter-layout-cheat-sheet-5363348d037e了解详细选项

https://dartpad.dev/79edda902aa584124dafd56c35d612fd

import 'package:flutter/material.dart';

void main() {
runApp(MyApp());
}

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body:
Center(child: IntrinsicWidth(
child:Column(mainAxisSize: MainAxisSize.min , children: <Widget>[
Text("Lorem ipsum"),
Text("dolor"),
Divider(thickness: 1.0, color: Colors.red),
]))),
));
}
}

关于flutter - 使分频器匹配收缩包装容器的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60068673/

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