e_book_reader 0.0.11 copy "e_book_reader: ^0.0.11" to clipboard
e_book_reader: ^0.0.11 copied to clipboard

A powerful E-Book Reader for Flutter apps. Features adjustable text styles, light/dark modes, horizontal/vertical layouts, and scroll tracking. Perfect for a smooth, user-friendly reading experience.

E-Book Reader #

Overview #

The e_book_reader package provides a versatile and customizable e-book reading interface for Flutter applications. It supports features such as page scrolling, content loading, pull-to-refresh, and extensive customization options for the reading experience.

Features #

  • Customizable text styles (font size, font weight, font style, etc.)
  • Adjustable reading modes (light/dark)
  • Scroll position tracking
  • Horizontal and vertical reading layouts
  • Integrated pull-to-refresh functionality

Installation #

To use this package, add e_book_reader as a dependency in your pubspec.yaml file:

dependencies:
  flutter:
    sdk: flutter
  e_book_reader: ^1.0.0

Then, run flutter pub get to install the package.

Usage #

Here is a step-by-step guide to using the e_book_reader package in your Flutter application.

import 'package:e_book_reader/e_book_reader.dart';
import 'package:e_book_reader/reader_controller.dart';
import 'package:e_book_reader/reader_pull_to_refresh.dart';

Basic Setup #

Create a ReaderController and configure it in your widget:

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

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  final ReaderController _readerController = ReaderController();

  @override
  void initState() {
    _readerController.load(longText);
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("E-Book Reader"),
      ),
      body: ReaderContent(
        controller: _readerController,
      ),
    );
  }
}

Add Scroll Listener #

@override
void initState() {
  _readerController.load(longText);
  _readerController.addScrollListener(() {
    print("Scroll Position: ${_readerController.scrollPosition}");
  });
  super.initState();
}

Customizing the Reader #

You can customize various aspects of the reader using the ReaderController:

_readerController.setFontSize(18);
_readerController.setFontWeight(FontWeight.bold);
_readerController.setFontStyle(FontStyle.italic);
_readerController.setTextAlign(TextAlign.justify);
_readerController.setColor(Colors.black, Colors.white);
_readerController.setAxis(Axis.horizontal);
_readerController.setLineHeight(1.8);
_readerController.setPadding(EdgeInsets.all(16));
_readerController.setFontFamily("serif");

Pull-to-Refresh #

To enable pull-to-refresh functionality, wrap the ReaderContent widget with ReaderPullToRefresh:

ReaderPullToRefresh(
  onRefreshTop: () async {
    // Handle top refresh
  },
  onRefreshBottom: () async {
    // Handle bottom refresh
  },
  child: ReaderContent(
    controller: _readerController,
  ),
)

API Summary #

Method Description
load(String text) Loads the e-book text content
setFontSize(int size) Sets the font size
setFontWeight(FontWeight weight) Sets the font weight
setFontStyle(FontStyle style) Sets the font style
setTextAlign(TextAlign align) Sets the text alignment
setColor(Color bgColor, Color fgColor) Sets the background and foreground colors
setAxis(Axis axis) Sets the reading direction (vertical/horizontal)
setLineHeight(double height) Sets the line height
setPadding(EdgeInsets padding) Sets the padding around the text
setFontFamily(String family) Sets the font family
scrollToRate(double rate) Scrolls to a specific position based on rate
scrollToPosition(double position) Scrolls to a specific position
scrollToPage(int page) Scrolls to a specific page
4
likes
110
pub points
51%
popularity

Publisher

verified publisheremintolgahanpolat.com

A powerful E-Book Reader for Flutter apps. Features adjustable text styles, light/dark modes, horizontal/vertical layouts, and scroll tracking. Perfect for a smooth, user-friendly reading experience.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, webview_flutter, webview_flutter_android, webview_flutter_wkwebview

More

Packages that depend on e_book_reader