flutter 完成对话框不可滚动,但只有其中的列表视图可滚动

rdrgkggo  于 2023-01-14  发布在  Flutter
关注(0)|答案(1)|浏览(165)

我正在尝试创建一个包含一些细节并且可滚动的模态。模态包含一个可滚动的列表视图,但是完整的模态不是。

我试过将以下选项添加到ListView中,但没有效果

shrinkWrap: true,
                  physics: const NeverScrollableScrollPhysics()

最小可重现代码为

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // Application name
      title: 'Flutter Stateful Clicker Counter',
      theme: ThemeData(
        // Application theme data, you can set the colors for the application as
        // you want
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Clicker Counter Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  final String title;
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

_buildTheDescriptionWizard() {
  return Padding(
    padding: const EdgeInsets.all(8.0),
    child: Container(
        child: Text(
            "Paneer is a fresh cheese used in a wide variety of Indian recipes, made by heating and then curdling milk using acid. It's very mild and milky in flavor, white in color, and its texture is soft, spongy, and squeaky. This texture helps it to absorb the flavors of sauces or marinades. It can be made from cow's milk or buffalo milk, either pasteurized or raw, and can be made from whole, skim or reduced-fat milk. ",
            textAlign: TextAlign.left,
            style: TextStyle(fontSize: 15, height: 1.5, color: Colors.black))),
  );
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Dialog(
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(40)),
        elevation: 16,
        child: createModal());
  }

  createModal() {
    return Container(
        height: 600,
        width: 800,
        child: Container(
            color: Colors.white,
            child: SingleChildScrollView(
                scrollDirection: Axis.vertical,
                child: Column(children: <Widget>[
                  Container(
                      height: 300,
                      child: ListView(
                        shrinkWrap: true,
                        physics: const NeverScrollableScrollPhysics(),
                        children: [
                          Container(
                            width: 300,
                            color: Colors.white,
                            // child:
                            //   DropShadow(
                            child: Padding(
                              padding: const EdgeInsets.all(8.0),
                              child: Image.network(
                                  'https://picsum.photos/250?image=9',
                                  height: 250,
                                  width: 250),
                            ),
                            // )
                          ),
                          Container(
                              width: 450, height: 300, color: Colors.black)
                        ],
                      )),
                  Divider(),
                  _buildTheDescriptionWizard()
                ]))));
  }
}

有人能帮我弄清楚我如何才能使完整的模态滚动?

fiei3ece

fiei3ece1#

删除SingleChildScrollViewColumn只使用ListView,不要使用shrinkWrap: truephysics: const NeverScrollableScrollPhysics()

相关问题