risto_widgets 0.2.1 copy "risto_widgets: ^0.2.1" to clipboard
risto_widgets: ^0.2.1 copied to clipboard

A Flutter library with customizable UI widgets for buttons, expandable list tiles, and more.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:risto_widgets/risto_widgets.dart';
import 'package:risto_widgets_example/pages/action_button_page.dart';
import 'package:risto_widgets_example/pages/custom_dialog_page.dart';
import 'package:risto_widgets_example/pages/infinite_snap_list_page.dart';
import 'package:risto_widgets_example/pages/navigation_widget_page.dart';
import 'package:risto_widgets_example/pages/percent_indicators_page.dart';
import 'package:risto_widgets_example/pages/risto_notice_card_page.dart';
import 'package:risto_widgets_example/pages/risto_toast_page.dart';

import 'pages/custom_sheet_page.dart';
import 'pages/expandable_page.dart';
import 'pages/increment_decrement_page.dart';
import 'pages/list_tile_button_page.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Custom Widgets Demo',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const HomePage(),
    );
  }
}

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

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

class _HomePageState extends State<HomePage> {
  final List<NavigationItem> _navigationItems = [];

  @override
  void initState() {
    super.initState();

    _navigationItems.addAll([
      const NavigationItem(
        page: IncrementDecrementPage(),
        icon: Icon(Icons.home),
        label: 'Increment/Decrement',
      ),
      const NavigationItem(
        page: ActionButtonPage(),
        icon: Icon(Icons.search),
        label: 'Action Buttons',
      ),
      const NavigationItem(
        page: ListTileButtonPage(),
        icon: Icon(Icons.list),
        label: 'List Tile Buttons',
      ),
      const NavigationItem(
        page: ExpandablePage(),
        icon: Icon(Icons.expand),
        label: 'Expandable',
      ),
      const NavigationItem(
        page: CustomSheetPage(),
        icon: Icon(Icons.open_in_new),
        label: 'Custom Sheets',
      ),
      const NavigationItem(
        page: CustomDialogPage(),
        icon: Icon(Icons.present_to_all_sharp),
        label: 'Custom Dialogs',
      ),
      const NavigationItem(
        page: InfiniteSnapDemoPage(),
        icon: Icon(Icons.repeat),
        label: 'Infinite Snap List',
      ),
      const NavigationItem(
        page: NavigationWidgetPage(),
        icon: Icon(Icons.swap_horiz),
        label: 'Nav Switcher',
      ),
      const NavigationItem(
        page: RistoToastPage(),
        icon: Icon(Icons.notification_important),
        label: 'RistoToast',
      ),
      NavigationItem(
        page: RistoNoticeCardPage(),
        icon: Icon(Icons.note_alt_outlined),
        label: 'Notice Card',
      ),
      const NavigationItem(
        page: PercentIndicatorsPage(),
        icon: Icon(Icons.pie_chart),
        label: 'Percent Indicators',
      ),
    ]);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Custom Widgets Demo')),
      body: CustomBottomNavBar(
        showUnselectedLabels: false,
        type: BottomNavigationBarType.fixed,
        backgroundColor: Colors.white,
        selectedItemColor: Colors.lightBlue,
        unselectedItemColor: Colors.blue,
        elevation: 8.0,
        itemPadding: const EdgeInsets.all(5),
        items: _navigationItems,
      ),
    );
  }
}