我是一个初学者,还在学习颤抖,如果在这里遇到问题,请原谅我。
所以我有一个堆栈,其中有2个小部件。 Widget1和Widget2。 我想将小部件B置于小部件A的正下方。
注意:小部件2大于小部件1。
class MyWidgets extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Stack(
children: <Widget>[
Widget1,
Positioned(
top: widget1PositionFromTop + widget1Size,
left: widget1PositionFromLeft,
child: FractionalTranslation(
translation: Offset(-0.5, 0.0),
child: Widget2,
),
)
],
);
}
}
问题是,如果Widget1从左开始的位置为0,或者小于Widget2的一半,那么Widget2就会溢出,并且只能看到Widget2的一半或一部分。
我想知道如何仅在剩余空间的情况下平移其位置,我的意思是,如果仅Widget2的0.3剩余空间,那么它将仅移动-0.3而不是-0.5。
谢谢。
答案 0 :(得分:0)
如果您想使用// MARK: - Response
struct Response: Codable {
let userID, id: Int
let title: String
let completed: Bool
enum CodingKeys: String, CodingKey {
case userID = "userId"
case id, title, completed
}
}
URLSession.shared.dataTask(with:url!, completionHandler: {(data, response, error) in
guard let data = data else { return }
do {
let response = try JSONDecoder().decode(Response.self, from: data)
print(response.id)
print(response.userID)
print(response.title)
print(response.completed)
} catch {
print(error)
}
}).resume()
来
Stack
给出
也许您可以像这样使用class SO extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Stack(
alignment: Alignment.bottomCenter,
children: <Widget>[
Container(width: 200, height: 200, color: Colors.red),
Container(width: 100, height: 100, color: Colors.blue),
],
),
);
}
}
Column
最终结果为