alphabet_slider 1.0.1 copy "alphabet_slider: ^1.0.1" to clipboard
alphabet_slider: ^1.0.1 copied to clipboard

A Flutter plugin for an Alphabet slider, commonly used in phone contact listing pages. This package provides a widget that lists all the alphabets vertically. Users can select an alphabet by either sl [...]

example/lib/main.dart

import 'package:alphabet_slider/alphabet_slider.dart';
import 'package:flutter/material.dart';
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';

import 'constants.dart';

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

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

  /// This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'AlphabetSlider Example',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage({super.key});

  final ItemScrollController itemScrollController = ItemScrollController();
  final ItemPositionsListener itemPositionsListener =
      ItemPositionsListener.create();

  /// Callback function when a letter is selected in the AlphabetSlider.
  void _onLetterSelect(letter) {
    final scrollToIndex = scrollToIndexMap[letter];
    if (scrollToIndex != null) {
      itemScrollController.jumpTo(index: scrollToIndex);
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        alignment: Alignment.centerRight,
        children: [
          Padding(
            padding: const EdgeInsets.symmetric(horizontal: 21, vertical: 30),
            child: ScrollablePositionedList.builder(
              itemScrollController: itemScrollController,
              itemPositionsListener: itemPositionsListener,
              physics: const BouncingScrollPhysics(),
              itemCount: 43,
              itemBuilder: _getScrollItemBuilder,
            ),
          ),
          AlphabetSlider(
            onLetterSelect: _onLetterSelect,
            textColor: Colors.green,
            fontSize: 12,
          )
        ],
      ),
    );
  }
}

/// Builds the list item for the contact at [index].
Widget _getScrollItemBuilder(BuildContext context, int index) {
  final contact = sortedContacts[index];
  return Column(
    children: [
      Padding(
        padding: const EdgeInsets.symmetric(vertical: 15),
        child: Text(
          contact['name'] ?? '',
          style: const TextStyle(color: Colors.green),
        ),
      ),
      const Divider(
        thickness: 1,
        color: Colors.grey,
        height: 0,
      )
    ],
  );
}
14
likes
0
pub points
70%
popularity

Publisher

verified publishersabarinath-m.space

A Flutter plugin for an Alphabet slider, commonly used in phone contact listing pages. This package provides a widget that lists all the alphabets vertically. Users can select an alphabet by either sliding on top of the list or clicking on an alphabet. Also we can pass fontSize, textColor, selectedTextColor onLetterSelect callback to the widget. Use this widget with a Stack widget and align based on your UI requirement.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on alphabet_slider