hesty / flutter_expanded_tile

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

flutter_expanded_tile

An Expansion tile similar to the list tile supports leading widget,checkbox option and programatic control with content expansion animation.

Getting Started

1. Depend on it

Add this to your package's pubspec.yaml file:

dependencies:
  flutter_expanded_tile: [latest version]

2. Install it

$ flutter pub get

3. Import it

import 'package:flutter_expanded_tile/flutter_expanded_tile.dart';

Example

.
.
 // Controller
  ExpandedTileController _controller;

  void initState() {
    // initialize controller
    _controller = ExpandedTileController();
    super.initState();
  }
  .
  .
ExpandedTile(
                controller: _controller,
                checkable: true, // check box enabled or not
                leading: Icon(Icons.menu),
                centerHeaderTitle: false,
                title: Text(
                  "With Leading.",
                  style: TextStyle(
                    color: Colors.grey[800],
                  ),
                ),
                content: Container(
                  child: Column(
                    children: <Widget>[
                      Text("text1"),
                      Text("text2"),
                    ],
                  ),
                ),
                contentBackgroundColor: Colors.green[100],
                onChecked(bool v){
                  log("$v");
                },
              ),
.
.

Usage

Property Description Default
@required Widget title Widget to use into the title of the tile @required
@required Widget content Content which expands @required
@required ExpandedTileController controller Tile Controller @required
Widget leading leading widget before the title null
Icon expandedIcon .. !checkable? Icon(Icons.keyboard_arrow_right, color: Colors.black) : null
bool showTrailingIcon Show or hide the trailing icon true
bool centerTitle .. false
bool rotateExpandedIcon .. !checkable? true : false
bool checkable Wheather tile has a checkbox or not. false
Color headerColor .. Color(0xfffafafa)
Color contentBackgroundColor .. Color(0xffeeeeee)
Color headerSplashColor .. Color(0xffeeeeee)
Color checkBoxColor check mark color Color(0xffffffff)
Color checkBoxActiveColor checkbox background color Color(0xff039be5)
EdgeInsetsGeometry titlePadding .. EdgeInsets.all(8)
EdgeInsetsGeometry headerPadding .. EdgeInsets.all(16.0)
EdgeInsetsGeometry contentPadding .. EdgeInsets.all(16.0)
Duration expansionDuration .. Duration(milliseconds: 200)
Curve expansionAnimationcurve .. Curves.ease
Function(bool value) onChecked Listener callback for when checkbox value changes null

Assertions

  • Must not set checkable as true and define expandIcon.
  • Must not set checkable as false and define onChecked.

Built With

  • Flutter - Beatiful native apps in record time.
  • Android Studio - Tools for building apps on every type of Android device.
  • Visual Studio Code - Code editing. Redefined.

Contributing

Contributing is more than welcomed on any of my packages/plugins. I will try to keep adding suggested features as i go.

Versioning

  • V0.1.0 - Initial Release.
  • V0.2.0 - Added controller for programatic expansion and checkbox functionality.
  • V0.2.1 - Added onChecked callback.

Authors

Michael Aziz - Github

License

This project is licensed under the MIT License - see the LICENSE.md file for details

About

License:MIT License


Languages

Language:Dart 100.0%