hybrid_expansion_tile 1.0.1 copy "hybrid_expansion_tile: ^1.0.1" to clipboard
hybrid_expansion_tile: ^1.0.1 copied to clipboard

HybridExpansionTile widget allows creating customized ExpansionTile with various properties like padding, colors, icons, titles, and more.

Hybrid Expansion Tile #

Banner

A customizable, animated expansion tile widget for Flutter.

HybridExpansionTile is a Flutter widget that makes it easy to create expandable sections with smooth animations, flexible styling options and full control over appearance and behavior.

The Widget consists of 4 parts:

  • Main Tile / Configuration – defines title, style, background color, border radius, and animation.
  • Trailing Icon – indicates expansion state and rotates when expanded/collapsed.
  • Content – the collapsible area that can hold any widget (Text, Column, Image, etc.).
  • Border & Animation – smooth expand/collapse animations with customizable expanded border color.

Example 1 #

EXAMPLES #

Example 1: Change tile, styleText and colors #

Example 1
 HybridExpansionTile(
  title: 'Advanced Settings',
  styleTitle: TextStyle(
    fontSize: 16,
    fontWeight: FontWeight.bold,
    color: Colors.blue,
  ),
  backgroundTileColor: Colors.blue.shade50,
  expandedBorderColor: Colors.blue,
  borderRadius: 12,
  iconColor: Colors.blue,
  content: Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    children: const [
      Text('• Option 1'),
      Text('• Option 2'),
      Text('• Option 3'),
    ],
  ),
)

Example 2: Change border, expanded hard edge, colors and icon #

Example 2
HybridExpansionTile(
  title: 'Notifications',
  backgroundTileColor: Colors.grey.shade200,
  expandedBorderColor: Colors.grey.shade300,
  hasExpandedHardEdge: true,
  borderRadius: 0,
  icon: Icons.arrow_drop_up_rounded,
  iconColor: Colors.grey.shade700,
  contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16),
  styleTitle: const TextStyle(
    fontSize: 16,
    fontWeight: FontWeight.w600,
    color: Colors.black87,
  ),
  content: Column(
    crossAxisAlignment: CrossAxisAlignment.center,
    children: [
      Container(
        padding: const EdgeInsets.all(12),
        decoration: BoxDecoration(
          color: Colors.grey.shade100,
          borderRadius: BorderRadius.circular(16),
        ),
        child: const FlutterLogo(
          size: 80,
        ),
      ),
      const SizedBox(height: 12),
      Text(
        'Lorem ipsum dolor sit amet consectetur adipiscing elit. '
        'Rhoncus varius nunc morbi odio duis lacus phasellus nulla primis.',
        textAlign: TextAlign.center,
        style: TextStyle(
          fontSize: 14,
          height: 1.4,
          color: Colors.grey.shade700,
        ),
      ),
    ],
  ),
)

Example 3: Add more widgets and change colors #

Example 3
Container(
  padding: const EdgeInsets.all(16),
  decoration: BoxDecoration(
    color: Colors.deepPurple.shade50,
    borderRadius: BorderRadius.circular(16),
  ),
  child: HybridExpansionTile(
    title: 'Information',
    styleTitle: const TextStyle(
      color: Colors.deepPurple,
      fontWeight: FontWeight.w600,
      fontSize: 16,
    ),
    iconColor: Colors.deepPurple,
    backgroundTileColor: Colors.white,
    expandedBorderColor: Colors.deepPurple.shade200,
    borderRadius: 12,
    contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
    content: Column(
      children: [
        Container(
          decoration: BoxDecoration(
            borderRadius: BorderRadius.circular(12),
            color: Colors.grey.shade100,
          ),
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              Text('Wi-Fi'),
              Switch(value: true, onChanged: (_) {}),
            ],
          ),
        ),
        const SizedBox(height: 12),
        Text(
          'Lorem ipsum dolor sit amet consectetur adipiscing elit. '
          'Rhoncus varius nunc morbi odio duis lacus phasellus nulla primis',
          textAlign: TextAlign.center,
          style: TextStyle(
            color: Colors.grey.shade700,
            height: 1.4,
            fontSize: 14,
          ),
        ),
      ],
    ),
  ),
)

Author ✒️ #


With ❤️ by RudoApps Flutter Team 😊

Rudo Apps

4
likes
160
points
--
downloads

Publisher

verified publisherrudo.es

Weekly Downloads

HybridExpansionTile widget allows creating customized ExpansionTile with various properties like padding, colors, icons, titles, and more.

Homepage
Repository (GitHub)
View/report issues

Topics

#expansiontile

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

flutter, flutter_localizations, google_fonts

More

Packages that depend on hybrid_expansion_tile