contact_list_view 1.0.0 copy "contact_list_view: ^1.0.0" to clipboard
contact_list_view: ^1.0.0 copied to clipboard

A Flutter contact list widget with sticky headers and an index bar.

example/lib/main.dart

import 'package:example/app_theme.dart';
import 'package:example/contact_page.dart';
import 'package:flutter/material.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: AppTheme.light,
      darkTheme: AppTheme.dark,
      themeMode: .system,
      home: HomePage(),
    );
  }
}

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

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

class _HomePageState extends State<HomePage> {
  late final PageController pageController;

  late int currentIndex = 1;

  @override
  void initState() {
    super.initState();
    pageController = PageController(initialPage: 1);
  }

  void onTap(int index) {
    setState(() {
      currentIndex = index;
    });
    pageController.animateToPage(
      index,
      duration: Duration(milliseconds: 250),
      curve: Curves.linear,
    );
  }

  void onChanged(int index) {
    setState(() {
      currentIndex = index;
    });
  }

  @override
  void dispose() {
    pageController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: PageView(
        controller: pageController,
        onPageChanged: onChanged,
        children: [
          Placeholder(child: Text('Home')),
          ContactPage(),
          Placeholder(child: Text('Mine')),
        ],
      ),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: currentIndex,
        onTap: onTap,
        items: [
          BottomNavigationBarItem(icon: Icon(Icons.home), label: '首页'),
          BottomNavigationBarItem(icon: Icon(Icons.contacts), label: '联系人'),
          BottomNavigationBarItem(icon: Icon(Icons.person), label: '我的'),
        ],
      ),
    );
  }
}
1
likes
0
points
140
downloads

Publisher

verified publisherjsontodart.cn

Weekly Downloads

A Flutter contact list widget with sticky headers and an index bar.

Homepage
Repository (GitHub)
View/report issues

Topics

#widget #azlistview #contact #chat

License

unknown (license)

Dependencies

flutter, flutter_sticky_header, scrollview_observer, signals

More

Packages that depend on contact_list_view