Здравствуйте, я новичок в разработке флаттера. Здесь я получаю ошибку Bottom, переполненную ошибкой 98 пикселей. Как это решить. означает, что нижняя часть панели приложения переполняется, когда я добавляю заголовок списка. Он должен быть прокручиваемым. Пожалуйста, помогите мне решить эту проблему.

app_drawer.dart:

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

import '../screens/orders_screen.dart';
import '../screens/user_products_screen.dart';
import '../providers/auth.dart';

class AppDrawer extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Drawer(
      child: Column(
        children: <Widget>[
          AppBar(
            title: Text('MyApp'),
            automaticallyImplyLeading: false,
          ),
          Divider(),
          ListTile(
            leading: Icon(Icons.shop),
            title: Text('Home'),
            onTap: () {
              Navigator.of(context).pushReplacementNamed('/');
            },
          ),
          Divider(),
          ListTile(
            leading: Icon(Icons.payment),
            title: Text('Control Process'),
            onTap: () {
              Navigator.of(context)
                  .pushReplacementNamed(OrdersScreen.routeName);
            },
          ),
          Divider(),
          ListTile(
            leading: Icon(Icons.edit),
            title: Text('Process Sheet'),
            onTap: () {
              Navigator.of(context)
                  .pushReplacementNamed(UserProductsScreen.routeName);
            },
          ),
           Divider(),
          ListTile(
            leading: Icon(Icons.payment),
            title: Text('Skill Matrix'),
            onTap: () {
              Navigator.of(context)
                  .pushReplacementNamed(OrdersScreen.routeName);
            },
          ),
           Divider(),
          ListTile(
            leading: Icon(Icons.payment),
            title: Text('Maintenance'),
            onTap: () {
              Navigator.of(context)
                  .pushReplacementNamed(OrdersScreen.routeName);
            },
          ),
           Divider(),
          ListTile(
            leading: Icon(Icons.payment),
            title: Text('Sws'),
            onTap: () {
              Navigator.of(context)
                  .pushReplacementNamed(OrdersScreen.routeName);
            },
          ),
           Divider(),
          ListTile(
            leading: Icon(Icons.payment),
            title: Text('Safety'),
            onTap: () {
              Navigator.of(context)
                  .pushReplacementNamed(OrdersScreen.routeName);
            },
          ),
           Divider(),
          ListTile(
            leading: Icon(Icons.payment),
            title: Text('Pfd'),
            onTap: () {
              Navigator.of(context)
                  .pushReplacementNamed(OrdersScreen.routeName);
            },
          ),
          Divider(),
          ListTile(
            leading: Icon(Icons.payment),
            title: Text('Gauges'),
            onTap: () {
              Navigator.of(context)
                  .pushReplacementNamed(OrdersScreen.routeName);
            },
          ),
          Divider(),
          ListTile(
            leading: Icon(Icons.payment),
            title: Text('Videos'),
            onTap: () {
              Navigator.of(context)
                  .pushReplacementNamed(OrdersScreen.routeName);
            },
          ),
          Divider(),
          ListTile(
            leading: Icon(Icons.exit_to_app),
            title: Text('Logout'),
            onTap: () {
              Navigator.of(context).pop();
              Navigator.of(context).pushReplacementNamed('/');
              
              // Navigator.of(context)
              //     .pushReplacementNamed(UserProductsScreen.routeName);
              Provider.of<Auth>(context, listen: false).logout();
            },
          ),
        ],
      ),
    );
  }
}

Здесь я получаю ошибку Bottom, переполненную ошибкой 98 пикселей. Как это решить. означает, что нижняя часть панели приложения переполняется, когда я добавляю заголовок списка. Он должен быть прокручиваемым.

-1
Manoj Tolagekar 4 Фев 2022 в 08:18

4 ответа

Лучший ответ
  1. оберните свой Columnm с помощью SingleChildScrollView или
  2. вы также можете использовать представление списка

 return Drawer(
      child: SingleChildScrollView(
        child: Column(
          children: <Widget>[
                 ...
              ]
            )
          )

 return Drawer(
      child: ListView(
        children: <Widget>[
                  ...
                ]
              )
            )
0
Sumed 4 Фев 2022 в 08:37
Добро пожаловать .. пожалуйста, проголосуйте за мой ответ
 – 
Sumed
4 Фев 2022 в 09:36

Оберните столбец SingleChildScrollView следующим образом

drawer: Drawer(
child: SingleChildScrollView(
     child: Column(
     children: <Widget>[
     ...
    ]))

1
Sahil Hariyani 4 Фев 2022 в 08:25
Спасибо я решил это
 – 
Manoj Tolagekar
4 Фев 2022 в 09:03
1
Пожалуйста, примите ответ, если он вам помог!
 – 
Sahil Hariyani
4 Фев 2022 в 09:10

Вам просто нужно обернуть столбец с помощью SingleChildScrollView

Drawer(
          child: SingleChildScrollView(
            child: Column(
              children: <Widget>[
             ...
              ],
            ),
          ),
0
Ravi Limbani 4 Фев 2022 в 08:27
Спасибо я решил это
 – 
Manoj Tolagekar
4 Фев 2022 в 09:02

Вы также можете использовать ListView, чтобы сделать его прокручиваемым.

Drawer(
    child: ListView(
      children: <Widget>[           
          AppBar(
        title: Text('MyApp'),
        automaticallyImplyLeading: false,
      ),
      Divider(),
      ListTile(
        leading: Icon(Icons.shop),
        title: Text('Home'),
        onTap: () {
          Navigator.of(context).pushReplacementNamed('/');
        },
      ),
]),), 
0
Saddan 4 Фев 2022 в 08:32
Tq ты решил это
 – 
Manoj Tolagekar
4 Фев 2022 в 09:02
Когда я добавил список вместо столбца, он работает
 – 
Manoj Tolagekar
4 Фев 2022 в 09:04
Почему вы приняли отредактированный ответ, он просто добавил мои вещи после того, как я разместил свой ответ здесь !!!! Вы думали, что я такой хромой, чтобы опубликовать какой-то ответ, предложенный другим?
 – 
Saddan
4 Фев 2022 в 16:25