我正试图解决ideaflutterUI题,但我不知道怎么做.

基本上,我在想象一种容器,它覆盖了屏幕的一半,并且可以向上拖动,所以覆盖后面的信息,以便显示这个可拖动容器隐藏的更多信息,如下图所示.

enter image description here

我曾try 使用showModalBottomSheet,如图here所示,解决方案,但它不符合我的 idea 的要求,主要是因为它在屏幕的某个部分不可见,而且从屏幕底部开始,它隐藏了菜单栏的图标,另外,因为它是一个模式,所以它下面的容器完全变暗,看起来不太好,它只会让人产生一种错觉,认为它略高于它.

它不一定要覆盖容器下面的所有内容,它可以达到一个极限,我知道这是一个开放的问题,但我不知道如何在Flutter 中获得这个 idea ,因为我没有什么经验,如果有人能给我一些如何解决这个问题的观点,我将不胜感激.

推荐答案

DraggableScrollableSheet似乎是你想要的,值得注意的是,这个小部件not必须与showModalBottomSheet一起使用.根据需要,可以设置minChildSize属性以指定最小高度,例如0.5表示总高度的50%.

例如:

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(home: MyHome()));
}

class MyHome extends StatelessWidget {
  const MyHome({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('DraggableScrollableSheet'),
      ),
      body: DraggableScrollableSheet(
        initialChildSize: 0.5,
        minChildSize: 0.5,
        maxChildSize: 1,
        builder: (context, ScrollController controller) {
          return Container(
            color: Colors.grey,
            child: ListView.builder(
              controller: controller,
              itemBuilder: (_, index) => Center(child: Text('$index')),
            ),
          );
        },
      ),
    );
  }
}

Flutter相关问答推荐

video_player在Android上返回401 Unauthorized with Bunny CDN

什么是dart :这只是dart ?

有没有什么方法可以加快在Flutter 中加载Quill HTML编辑器的速度?

FOR回路中的Flutter 模型

如何画三角形的圆角?

从Firestore流式传输单个文档还是整个集合更好?

如何在flutter中使用youtube_explod_start加载下一页

如何更改Flutter 中文本的混合模式?

ScaffoldMessenger 在等待键下方不起作用

为什么我的图标的一半在定位小部件中消失了?

如何在flutter中实现这样的底部导航栏?

添加appBar时绘制的线条发生偏移 Flu

「Flutter」错误:没有名为'kind'的命名参数

如何使用Riverpod提供程序正确构建搜索栏?

在 flutter 的另一个类中使用变量值

Flutter HLS .m3u8 视频无法实时播放

如何在 flutter 中创建渐变按钮

http响应在Flutter 中返回307

Flutter 评级栏包选中和未选中的容器

FLUTTER+SQL:在 ListViewBuilder 中显示数据库中的数据