【问题标题】:how to align listview items top left?如何对齐列表视图项目左上角?
【发布时间】:2020-08-15 20:55:51
【问题描述】:

我试图在左上角对齐列表视图项目,但它使它们在中心对齐。我用另一个小部件尝试了这个,它工作正常,但使用列表视图,它没有。

这是我的代码

 Container(
                              height: height * 30,
//                              color: Colors.grey[400],
                              alignment: Alignment.topLeft,
                              child: ListView.builder(
                                itemBuilder: (context, i) => ReviewItem(
                                  review: book.reviews[i]['review'],
                                  date: book.reviews[i]['date'],
                                ),
                                itemCount: book.reviews.length,
                              ),
                            ),

这是评论项目

Column(
      mainAxisAlignment: MainAxisAlignment.start,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        Text(
          timeago.format(DateTime.parse(date)),
          style: Theme.of(context).textTheme.headline4.copyWith(
              fontSize: width * kFont12Ratio, color: Colors.grey[500]),
        ),
        SizedBox(height: height * 0.5),
        Text(review),
        Divider(),
      ],
    );

提前致谢

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    默认情况下,ListView 将自动填充列表的可滚动末端,以避免 MediaQuery 填充指示的部分障碍。换句话说,如果你把一个小部件放在 ListView 之前,你应该用 MediaQuery.removePadding 小部件(removeTop: true)包装 ListView。像这样:

    MediaQuery.removePadding(
      context: context,
      removeTop: true,
      child: ListView.builder(...),
    );
    

    【讨论】:

      【解决方案2】:

      我通过在列表视图构建器中添加填充来实现这一点

      padding: EdgeInsets.only(top: 0),
      

      【讨论】:

        【解决方案3】:

        您可以改用填充 或使用 Stack with Position (top:0,left:0) 或者使用 Align( )

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-24
          • 2014-02-18
          • 1970-01-01
          • 2017-01-25
          • 1970-01-01
          • 2014-05-19
          相关资源
          最近更新 更多