MOTOSHARE 🚗🏍️
Turning Idle Vehicles into Shared Rides & Earnings

From Idle to Income. From Parked to Purpose.
Earn by Sharing, Ride by Renting.
Where Owners Earn, Riders Move.
Owners Earn. Riders Move. Motoshare Connects.

With Motoshare, every parked vehicle finds a purpose. Owners earn. Renters ride.
🚀 Everyone wins.

Start Your Journey with Motoshare

Building Elegant Multiple Select Dropdown Lists in Flutter

Selecting multiple options from a dropdown list is a common requirement in Flutter app development. While plugins like flutter_custom_selector can simplify the process, let’s explore how to create a beautiful multiple select dropdown list without relying on external plugins. In your Flutter project, you might need a dropdown list that allows users to select multiple languages. Let’s enhance your existing code and provide a more elegant solution.

import 'package:flutter/material.dart';

class MultipleSelectDropdown extends StatefulWidget {
  const MultipleSelectDropdown({Key? key}) : super(key: key);

  @override
  State<MultipleSelectDropdown> createState() => _MultipleSelectDropdownState();
}

class _MultipleSelectDropdownState extends State<MultipleSelectDropdown> {
  List<String> availableLanguages = [
    "Chinese",
    "Spanish",
    "Hindi",
    "Arabic",
    "Bengali",
    "Portuguese",
    "Russian",
    "Japanese",
    "Indonesian",
    "Sinhala",
    "Tamil",
    "Mandarin",
    "Thai",
  ];

  List<String> selectedLanguages = [];

  @override
  Widget build(BuildContext context) {
    double width = MediaQuery.of(context).size.width;
    return Container(
      width: width * 0.8,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          Text(
            'Select Your Languages',
            style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
          ),
          SizedBox(height: 10),
          Container(
            padding: EdgeInsets.all(10),
            decoration: BoxDecoration(
              border: Border.all(color: Colors.grey),
              borderRadius: BorderRadius.circular(8),
            ),
            child: DropdownButtonHideUnderline(
              child: DropdownButton<String>(
                isExpanded: true,
                value: selectedLanguages.isEmpty
                    ? null
                    : selectedLanguages.join(', '),
                hint: Text('Choose Languages'),
                items: availableLanguages.map((String language) {
                  return DropdownMenuItem<String>(
                    value: language,
                    child: Text(language),
                  );
                }).toList(),
                onChanged: (String? value) {
                  setState(() {
                    if (value != null) {
                      if (selectedLanguages.contains(value)) {
                        selectedLanguages.remove(value);
                      } else {
                        selectedLanguages.add(value);
                      }
                    }
                  });
                },
              ),
            ),
          ),
          SizedBox(height: 10),
          Text(
            'Selected Languages: ${selectedLanguages.join(', ')}',
            style: TextStyle(fontSize: 16),
          ),
        ],
      ),
    );
  }
}

Dropdown UI Enhancement:

We’ve wrapped the dropdown in a container for a cleaner look.

Added styling to the dropdown container for better aesthetics.

Multi-Select Functionality:

Modified the dropdown to allow multiple selections.

Display selected languages dynamically below the dropdown.

Improved User Experience:

Included a hint in the dropdown for better user guidance.

Removed the unnecessary Padding and Column in the original code.

Related Posts

AWS Automation A Comprehensive Guide For DevOps Engineers—bangaloreff

Introduction: Problem, Context & Outcome Engineering teams want to move faster. However, many still struggle with infrastructure setup delays, unpredictable cloud costs, and unreliable deployments. Moreover, teams…

Artifactory Automation A Comprehensive Guide For DevOps Teams—Pune

Introduction: Problem, Context & Outcome Engineering teams release software faster than ever. However, many teams still struggle to manage binaries, dependencies, and container images consistently across environments….

Artifactory Automation: A Comprehensive Guide For DevOps Teams—Bangalore

Introduction: Problem, Context & Outcome Modern software teams release code continuously. However, many engineers still struggle to manage binaries, Docker images, libraries, and packages consistently across environments….

AppDynamics Monitoring: A Comprehensive Guide For DevOps Teams

Introduction: Problem, Context & Outcome Modern applications grow more complex every day. However, engineering teams still struggle to understand why applications slow down, fail under load, or…

Ansible Automation: A Comprehensive Guide For DevOps Teams

Introduction: Problem, Context & Outcome Engineering teams deliver software faster than ever. However, many teams still depend on manual configuration, undocumented fixes, and environment-specific setups. As a…

Ansible Automation: A Comprehensive Guide for DevOps

Introduction: Problem, Context & Outcome Engineering teams today release software faster, yet they still face configuration drift, inconsistent environments, and fragile deployments. Moreover, manual setup and undocumented…

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x