我如何左右移动小部件,直到可用空间被填满?

时间:2019-06-09 04:15:09

标签: flutter dart flutter-layout

我是一个初学者,还在学习颤抖,如果在这里遇到问题,请原谅我。

所以我有一个堆栈,其中有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。

谢谢。

1 个答案:

答案 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

给出

Stack result


也许您可以像这样使用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

最终结果为

Column result