fixed_line_view 0.1.4 copy "fixed_line_view: ^0.1.4" to clipboard
fixed_line_view: ^0.1.4 copied to clipboard

Virtualized fixed-height line view widgets for Flutter. Supports active line tracking, auto-scroll behaviors, and stream-driven content.

example/lib/main.dart

import 'dart:async';

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

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Fixed Line View Demo',
      theme: ThemeData.dark(useMaterial3: true),
      home: const DemoPage(),
    );
  }
}

class DemoPage extends StatefulWidget {
  const DemoPage({super.key});

  @override
  State<DemoPage> createState() => _DemoPageState();
}

class _DemoPageState extends State<DemoPage> {
  static const int _lineCount = 100;
  static const double _itemExtent = 24.0;

  int _activeLine = 0;
  Timer? _ticker;

  @override
  void initState() {
    super.initState();
    _ticker = Timer.periodic(const Duration(milliseconds: 400), (_) {
      setState(() {
        _activeLine = (_activeLine + 1) % _lineCount;
      });
    });
  }

  @override
  void dispose() {
    _ticker?.cancel();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Active line: $_activeLine')),
      body: FixedLineView(
        lineCount: _lineCount,
        itemExtent: _itemExtent,
        activeLineIndex: _activeLine,
        autoScroll: AutoScrollBehavior.center,
        lineBuilder: (context, index) {
          final isActive = index == _activeLine;
          return Container(
            alignment: Alignment.centerLeft,
            padding: const EdgeInsets.symmetric(horizontal: 12),
            color: isActive ? Colors.blue.withValues(alpha: 0.25) : null,
            child: Text(
              'line ${index.toString().padLeft(3, '0')}',
              style: TextStyle(
                fontFamily: 'monospace',
                fontWeight: isActive ? FontWeight.bold : FontWeight.normal,
              ),
            ),
          );
        },
      ),
    );
  }
}
0
likes
160
points
162
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Virtualized fixed-height line view widgets for Flutter. Supports active line tracking, auto-scroll behaviors, and stream-driven content.

Homepage
Repository (GitHub)
View/report issues

Topics

#scroll #list #virtualization #flutter

License

BSD-3-Clause (license)

Dependencies

flutter, line_snap_scroll_physics

More

Packages that depend on fixed_line_view