Flutter粘性底部视图插件sticky_footer_scrollview的使用

发布于 1周前 作者 sinazl 来自 Flutter

Flutter粘性底部视图插件sticky_footer_scrollview的使用

sticky_footer_scrollview

pub package

sticky_footer_scrollview 是一个Flutter Widget,它具有可滚动的内容体和一个可以粘贴在屏幕底部或滚动内容末尾的脚部。

背景

这个包使用SingleChildScrollViewCustomMultiChildLayout来实现带有粘性底部的可滚动Widget。这允许滚动主体中的子Widget具有动态高度。

同时,由于采用了SingleChildScrollViewColumn的方式,对于性能原因不建议使用大量的子Widget。你可以简单地通过示例测试是否适合你的需求。

使用方法

以下是StickyFooterScrollView的所有自定义属性:

StickyFooterScrollView({    
    this.footer,
    @required this.itemBuilder,
    @required this.itemCount,
    this.scrollController,
})
  • footer是放置在屏幕底部或滚动主体末尾的脚部Widget。
  • itemBuilder用于构建滚动主体中的子Widget。
  • itemCount是滚动主体中子Widget的数量,只允许大于等于0。
  • scrollController允许手动跳转到特定的偏移位置。

示例

当滚动主体比可用的窗口高度短时: demo1

当滚动主体比可用的窗口高度长时: demo3

下面是一个完整的例子:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        body: StickyFooterScrollView(
          itemCount: 50, // 更改了itemCount为50以展示更多内容
          itemBuilder: (context, index) {
            return Card(
              child: ListTile(
                title: Text('content $index'),
              ),
              color: Colors.pinkAccent,
            );
          },
          footer: AppBar(
            title: Text('i stick at bottom'),
          ),
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个应用程序,其中包含一个名为HomePage的页面。在这个页面上,我们使用了StickyFooterScrollView作为主体,并设置了50个卡片项目和一个位于底部的应用栏作为粘性脚部。当内容较少时,脚部会固定在屏幕底部;当内容较多时,脚部会在滚动到底部时显示。

许可证

MIT


更多关于Flutter粘性底部视图插件sticky_footer_scrollview的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter粘性底部视图插件sticky_footer_scrollview的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用sticky_footer_scrollview插件来实现粘性底部视图的示例代码。这个插件允许你创建一个可以滚动的内容区域,并在底部保持一个固定的视图(如标签栏、广告栏等)。

首先,你需要在你的pubspec.yaml文件中添加依赖:

dependencies:
  flutter:
    sdk: flutter
  sticky_footer_scrollview: ^x.y.z  # 替换为最新版本号

然后,运行flutter pub get来安装这个依赖。

接下来,你可以在你的Flutter应用中使用这个插件。下面是一个完整的示例:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Sticky Footer ScrollView Demo'),
        ),
        body: StickyFooterScrollView(
          header: Container(
            height: 100,
            color: Colors.blue,
            child: Center(
              child: Text(
                'Header',
                style: TextStyle(color: Colors.white),
              ),
            ),
          ),
          footer: Container(
            height: 60,
            color: Colors.red,
            child: Center(
              child: Text(
                'Footer',
                style: TextStyle(color: Colors.white),
              ),
            ),
          ),
          contentView: ListView.builder(
            itemCount: 50,
            itemBuilder: (context, index) {
              return ListTile(
                title: Text('Item $index'),
              );
            },
          ),
        ),
      ),
    );
  }
}

在这个示例中:

  1. 我们导入了sticky_footer_scrollview包。
  2. 创建了一个MyApp应用,其中包含一个Scaffold
  3. Scaffoldbody中,我们使用了StickyFooterScrollView
  4. StickyFooterScrollView有三个主要参数:
    • header:可选的顶部视图,这里我们创建了一个蓝色的头部。
    • footer:固定在底部的视图,这里我们创建了一个红色的底部。
    • contentView:可滚动的内容区域,这里我们使用ListView.builder来创建了一个包含50个项目的列表。

运行这个代码,你将看到一个可以滚动的列表,当滚动时,红色的底部视图会保持在屏幕底部。

注意:确保你使用的sticky_footer_scrollview版本与Flutter SDK兼容,并检查最新的文档以获取可能的更新和特性。

回到顶部