multiple dropdown chips added.

main_production_RSG
Sikander Saleem 2 months ago
parent 05f3d89930
commit 35d4020013

@ -69,6 +69,7 @@ class _ExportFormViewState<T> extends State<ExportFormView<T>> {
Expanded( Expanded(
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
spacing: 16,
children: [ children: [
SingleItemDropDownMenu<Lookup, ExportFormatProvider>( SingleItemDropDownMenu<Lookup, ExportFormatProvider>(
context: context, context: context,
@ -82,7 +83,6 @@ class _ExportFormViewState<T> extends State<ExportFormView<T>> {
initialValue: selectedFormat, initialValue: selectedFormat,
onSelect: _updateSelectedFormat, onSelect: _updateSelectedFormat,
), ),
18.height,
MultipleItemDropDownMenu<AssetColumnMetadata, AssetColumnsProvider>( MultipleItemDropDownMenu<AssetColumnMetadata, AssetColumnsProvider>(
context: context, context: context,
title: 'Columns', title: 'Columns',

@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/new_views/common_widgets/app_loading_manager.dart'; import 'package:test_sa/new_views/common_widgets/app_loading_manager.dart';
import 'package:test_sa/providers/loading_list_notifier.dart'; import 'package:test_sa/providers/loading_list_notifier.dart';
@ -172,28 +173,34 @@ class _MultipleItemDropDownMenuState<T extends Base, X extends LoadingListNotifi
Flexible( Flexible(
child: Text(widget.title, style: TextStyle(fontWeight: FontWeight.w500, fontSize: context.isTablet() ? 16 : 12, color: AppColor.floatingTextStyleColor(context))), child: Text(widget.title, style: TextStyle(fontWeight: FontWeight.w500, fontSize: context.isTablet() ? 16 : 12, color: AppColor.floatingTextStyleColor(context))),
), ),
4.height,
if (_selectedItem.isEmpty) if (_selectedItem.isEmpty)
Text( Text(
context.translation.select, context.translation.select,
style: Theme.of(context).textTheme.bodyLarge, style: Theme.of(context).textTheme.bodyLarge,
) )
else else
ListView.separated( Wrap(
shrinkWrap: true, runSpacing: 4.toScreenHeight,
physics: const NeverScrollableScrollPhysics(), spacing: 4.toScreenWidth,
padding: const EdgeInsets.only(top: 8), children: [
separatorBuilder: (cxt, index) => const Divider( for (int i = 0; i < _selectedItem.length; i++)
thickness: 1, Chip(
color: Colors.white, backgroundColor: AppColor.backgroundTabBarColor(context),
), side: BorderSide(color: AppColor.border2Color(context)),
itemBuilder: (cxt, index) => Text( label: Text(_selectedItem[i].name!),
_selectedItem[index].name ?? "", // Null-aware operator for value.name shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0)),
maxLines: 1, labelStyle: AppTextStyles.tinyFont2.copyWith(color: AppColor.labelTextStyleColor(context)),
overflow: TextOverflow.ellipsis, deleteIconColor: AppColor.icon2Color(context),
style: Theme.of(context).textTheme.bodyMedium?.copyWith(fontWeight: FontWeight.w500, color: context.isDark ? AppColor.white10 : AppColor.black10), materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
), onDeleted: () {
itemCount: _selectedItem.length, _selectedItem.removeAt(i);
), setState(() {});
widget.onSelect!(_selectedItem);
},
),
],
).paddingOnly(top: 4),
], ],
) )
.onPress( .onPress(
@ -204,7 +211,7 @@ class _MultipleItemDropDownMenuState<T extends Base, X extends LoadingListNotifi
: null, : null,
) )
.expanded, .expanded,
if (widget.enabled) const Icon(Icons.keyboard_arrow_down_rounded), if (widget.enabled) const Icon(Icons.keyboard_arrow_down_rounded).paddingOnly(top: 4),
], ],
), ),
), ),

Loading…
Cancel
Save