CSCPicker is a Flutter package that provides an easy way to select a country, state, and city from a list. It offers a user-friendly interface and a comprehensive database of countries, states, and cities from around the world.

Features

Features:

Select country, state, and city from separate dropdowns Comprehensive database with over 250 countries and their respective states and cities Search functionality to quickly find the desired location Customizable UI to match your app's theme Localization support for multiple languages

Getting started

Benefits:

Simplifies location selection in your Flutter apps Provides a consistent and customizable UI Reduces the need for manual location input, improving user experience Supports localization for global reach

Usage

import 'package:countrypicker/FunctionWidget.dart';
import 'package:flutter/material.dart';

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

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

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: SingleChildScrollView(
          child: Padding(
            padding: const EdgeInsets.all(20),
            child: Column(
              children: [
                FunctionWidget(),
                SizedBox(height: 30),
                FunctionWidget(
                  countryLabel: 'Country',
                  StateLabel: 'State',
                  cityLabel: 'City',
                  LabelStyle:
                      TextStyle(fontSize: 18, fontWeight: FontWeight.w600),
                  hintTextCountry: "Select a country",
                  hintTextStyleCountry: TextStyle(fontSize: 16),
                  countryDropdownDecoration: InputDecoration(
                      border: OutlineInputBorder(
                        borderRadius: BorderRadius.circular(15),
                        borderSide: BorderSide.none,
                      ),
                      filled: true,
                      fillColor: Colors.grey.shade300,
                      prefixIcon: Icon(Icons.flag_rounded)),
                  hintTextState: "Choose a state",
                  hintTextStyleState: TextStyle(fontSize: 16),
                  stateDropdownDecoration: InputDecoration(
                      border: OutlineInputBorder(
                        borderRadius: BorderRadius.circular(15),
                        borderSide: BorderSide.none,
                      ),
                      filled: true,
                      fillColor: Colors.grey.shade300,
                      prefixIcon: Icon(Icons.map_rounded)),
                  hintTextCity: "Choose a city",
                  hintTextStyleCity: TextStyle(fontSize: 16),
                  cityDropdownDecoration: InputDecoration(
                      border: OutlineInputBorder(
                        borderRadius: BorderRadius.circular(15),
                        borderSide: BorderSide.none,
                      ),
                      filled: true,
                      fillColor: Colors.grey.shade300,
                      prefixIcon: Icon(Icons.pin_drop_rounded)),
                  heightBetweenLabelAndField: 10,
                  heightBetween: 20,
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

Additional information

More updates coming soon !! Mail me : apurbakhanra09@gmail.com Feel free to suggest any changes..

Libraries

cscplus