single_child_two_dimensional_scroll_view 0.0.3 copy "single_child_two_dimensional_scroll_view: ^0.0.3" to clipboard
single_child_two_dimensional_scroll_view: ^0.0.3 copied to clipboard

A box in which a single widget can be scrolled in two dimensions

example/lib/main.dart

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

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

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

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  late final ScrollController verticalScrollController = ScrollController();
  late final ScrollController horintalScrollController = ScrollController();
  late final key = GlobalKey();
  bool _isLeftToRight = true;
  @override
  void dispose() {
    verticalScrollController.dispose();
    horintalScrollController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Example 2D Single Child Scroll View',
      home: Scaffold(
          body: GestureDetector(
        onTap: () => setState(() {
          _isLeftToRight = !_isLeftToRight;
        }),
        child: Directionality(
          textDirection: _isLeftToRight ? TextDirection.ltr : TextDirection.rtl,
          child: Scrollbar(
            controller: verticalScrollController,
            child: Scrollbar(
              controller: horintalScrollController,
              child: SingleChildTwoDimensionalScrollView(
                verticalController: verticalScrollController,
                horizontalController: horintalScrollController,
                child: ColoredBox(
                  color: Colors.white,
                  child: Padding(
                    padding: const EdgeInsets.all(8.0),
                    child: Container(
                        padding: const EdgeInsets.all(8),
                        color: Colors.blue,
                        width: 1500,
                        height: 1500,
                        child: Center(
                            child: Text(
                                List.filled(1400, 'hello world').join(' ')))),
                  ),
                ),
              ),
            ),
          ),
        ),
      )),
    );
  }
}
8
likes
160
points
736
downloads

Publisher

verified publisherhornmicro.com

Weekly Downloads

A box in which a single widget can be scrolled in two dimensions

Repository (GitHub)

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on single_child_two_dimensional_scroll_view