Flutter实现滑动页面停留吸附

如图,实现这种,

  • 滑动吸附效果的应用场景(如电商分类导航、Tab栏联动)
Dart 复制代码
import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: MapWithListPage(),
    );
  }
}

class MapWithListPage extends StatelessWidget {
  const MapWithListPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: [
          // 底层地图
          Container(
            color: Colors.blue[200], // 占位,可以替换成地图
            child: const Center(child: Text("地图在这里")),
          ),

          // 上层可拖动的列表
          DraggableScrollableSheet(
            initialChildSize: 0.3, // 初始高度 = 30%
            minChildSize: 0.3,     // 最小高度 = 30%
            maxChildSize: 0.9,     // 最大高度 = 100%
            snap: true,            // 开启吸附
            snapSizes: const [0.3, 0.6, 0.9], // 三个停靠点
            builder: (context, scrollController) {
              return Container(
                decoration: const BoxDecoration(
                  color: Colors.white,
                  borderRadius: BorderRadius.vertical(top: Radius.circular(16)),
                  boxShadow: [BoxShadow(blurRadius: 10, color: Colors.black26)],
                ),
                child: ListView.builder(
                  controller: scrollController,
                  itemCount: 30,
                  itemBuilder: (context, index) {
                    return ListTile(title: Text("列表项 $index"));
                  },
                ),
              );
            },
          ),
        ],
      ),
    );
  }
}
相关推荐
qetfw8 分钟前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
甲维斯10 分钟前
我要开始吹牛逼了!Kimi K3 “宇宙无敌”!
前端·人工智能
a11177617 分钟前
微光小屋-前端养成小游戏 开源项目
前端
kyriewen29 分钟前
我让AI给前端项目做了一次完整的Code Review——它和人类的差距,比我想的大得多
前端·javascript·ai编程
张鑫旭30 分钟前
快速过下我2026年上半年的前端学了些啥
前端
এ慕ོ冬℘゜1 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
hoLzwEge1 小时前
拯救低效调试!code-inspector-plugin 让代码定位如虎添翼
前端·前端框架·node.js
J船长1 小时前
烂笔头扫盲:LLM Eval 入门:从「感觉挺好」到「数据说话」的工程化落地
前端
skiyee1 小时前
被多个 UView 系 UI 库 “抄” 的 @uni-ku/root 究竟怎么实现?
前端