flutter_tags 0.4.1 flutter_tags: ^0.4.1 copied to clipboard
Creating selectable and input tags (TextField) has never been easier.
flutter_tags #
Create beautiful tags quickly and easily.
Since version 4.0 the structure of the code has changed radically.
SelectableTags
and InputTags
have been replaced with the Tags () widget.
Now it is possible to personalize every single tag, with the possibility of adding icons, images and a removal button.
If you still prefer the previous version, go to
Installing #
Add this to your package's pubspec.yaml file:
dependencies:
flutter_tags: "^0.4.1"
DEMO #
Simple usage #
import 'package:flutter_tags/tag.dart';
.
.
.
@override
void initState(){
super.initState();
_items.addAll(['first','second','third']);
}
List __items;
double _fontSize = 14;
//Widget
Tags(
textField: TagsTextFiled(
textStyle: TextStyle(fontSize: _fontSize),
onSubmitted: (String str) {
setState(() {
// required
_items.add(str);
});
},
),
itemCount: _items.length, // required
itemBuilder: (int index){
final item = _items[index];
return ItemTags(
key: Key(index.toString()),
index: index, // required
title: item,
textStyle: TextStyle( fontSize: _fontSize, ),
combine: ItemTagsCombine.withTextBefore,
image: ItemTagsImage(
image: AssetImage("img.jpg") OR NetworkImage("https://...image.png")
) OR null,
icon: ItemTagsIcon(
icon: Icons.add,
) OR null,
removeButton: ItemTagsRemoveButton( ) OR null,
onRemoved: (){
setState(() {
// required
_items.removeAt(index);
});
},
onPressed: (item) => print(item),
onLongPressed: (item) => print(item),
);
},
)
Tags() parameters #
columns
- possibility to set number of columns when necessary. default not setitemCount
- *tag number to display ( required ) *symmetry
- set width equal to all tags ( default false)horizontalScroll
- ability to view and scroll tags horizontally (default false)heightHorizontalScroll
- height to set to display tags correctlyspacing
- horizontal space between the tagsrunSpacing
- vertical space between the tagsalignment
- horizontal WrapAlignment ( default WrapAlignment.center)runAlignment
- vertical WrapAlignment ( default WrapAlignment.center)direction
- Axis.horizontalverticalDirection
- VerticalDirection.downtextDirection
- textDirectionitemBuilder
- tag generatortextField
- add textField => TagsTextFiled()
ItemTags() parameters #
index
- requiredtitle
- requiredtextScaleFactor
- custom textScaleFactoractive
- bool value (default true)pressEnabled
- active onPress tag ( default true)customData
- Possibility to add any custom value in customData field, you can retrieve this later. A good example: store an id from Firestore document.textStyle
- textStyle()alignment
- MainAxisAlignment ( default MainAxisAlignment.center)combine
- * ability to combine text, icons, images in different ways ( default ItemTagsCombine.imageOrIconOrText)*icon
- ItemTagsIcon()image
- ItemTagsImage()removeButton
- ItemTagsRemoveButton()borderRadius
- BorderRadiusborder
- custom border-sidepadding
- default EdgeInsets.symmetric(horizontal: 7, vertical: 5)elevation
- default 5singleItem
- default falsetextOverflow
- default TextOverflow.fadetextColor
- default Colors.blacktextActiveColor
- default Colors.whitecolor
- default Colors.whiteactiveColor
- default Colors.blueGreyhighlightColor
- **splashColor
- **colorShowDuplicate
- default Colors.redonPressed
- callbackonLongPressed
- callbackonRemoved
- callback
Donate #
If you found this project helpful or you learned something from the source code and want to thank me:
Issues #
If you encounter problems, open an issue. Pull request are also welcome.