首页 > 解决方案 > Flutter ListView不在页面上滚动

问题描述

我在一家餐厅外卖应用程序中工作,我在 Codecanyon 中购买了它,但支持太差了……我发现 Cart Dart 中有一个错误,并且滚动不起作用……我收到“底部溢出错误”

我尝试了所有谷歌教程,但不知道什么是坏的。

这是我的代码:

@override

Widget build(BuildContext context) {
return WillPopScope(
  onWillPop: Helper.of(context).onWillPop,
  child: Scaffold(
    key: _con.scaffoldKey,
    bottomNavigationBar: CartBottomDetailsWidget(con: _con),
    appBar: AppBar(
      automaticallyImplyLeading: false,
      leading: IconButton(
        onPressed: () {
          if (widget.routeArgument != null) {
            Navigator.of(context).pushReplacementNamed(widget.routeArgument.param, arguments: RouteArgument(id: widget.routeArgument.id));
          } else {
            Navigator.of(context).pushReplacementNamed('/Pages', arguments: 2);
          }
        },
        icon: Icon(Icons.arrow_back),
        color: Theme.of(context).hintColor,
      ),
      backgroundColor: Colors.transparent,
      elevation: 0,
      centerTitle: true,
      title: Text(
        S.of(context).cart,
        style: Theme.of(context).textTheme.headline6.merge(TextStyle(letterSpacing: 1.3)),
      ),
    ),
    body: RefreshIndicator(
      onRefresh: _con.refreshCarts,
      child: _con.carts.isEmpty
          ? EmptyCartWidget()
          : Stack(
              alignment: AlignmentDirectional.bottomCenter,
              children: [
                Column(
                  children: <Widget>[
                    Padding(
                      padding: const EdgeInsets.only(left: 20, right: 10),
                      child: ListTile(
                        contentPadding: EdgeInsets.symmetric(vertical: 0),
                        leading: Icon(
                          Icons.shopping_cart,
                          color: Theme.of(context).hintColor,
                        ),
                        title: Text(
                          S.of(context).shopping_cart,
                          maxLines: 1,
                          overflow: TextOverflow.ellipsis,
                          style: Theme.of(context).textTheme.headline4,
                        ),
                        subtitle: Text(
                          S.of(context).verify_your_quantity_and_click_checkout,
                          maxLines: 1,
                          overflow: TextOverflow.ellipsis,
                          style: Theme.of(context).textTheme.caption,
                        ),
                      ),
                    ),
                    ListView.separated(
                      padding: EdgeInsets.symmetric(vertical: 15),
                      scrollDirection: Axis.vertical,
                      shrinkWrap: true,
                      primary: true,
                      itemCount: _con.carts.length,
                      separatorBuilder: (context, index) {
                        return SizedBox(height: 15);
                      },
                      itemBuilder: (context, index) {
                        return CartItemWidget(
                          cart: _con.carts.elementAt(index),
                          heroTag: 'cart',
                          increment: () {
                            _con.incrementQuantity(_con.carts.elementAt(index));
                          },
                          decrement: () {
                            _con.decrementQuantity(_con.carts.elementAt(index));
                          },
                          onDismissed: () {
                            _con.removeFromCart(_con.carts.elementAt(index));
                          },
                        );
                      },
                    ),`

标签: androidflutter

解决方案


Expanded没有尝试这个,但也许放ListView

作为一个它的直系孩子,Column它不知道它应该有多大。

Expanded(
    child: ListView.separated(...)
)


推荐阅读