zeba_academy_keyboard_manager

A production-ready Flutter package for smart keyboard management with automatic scrolling, keyboard visibility detection, focus handling, overflow prevention, and smooth animations.


✨ Features

✅ Auto scroll when keyboard opens
✅ Keyboard visibility detection
✅ Input focus handling
✅ Prevent bottom overflow
✅ Smooth keyboard animations
✅ Dismiss keyboard on outside tap
✅ Lightweight and easy to use
✅ Fully customizable


📦 Installation

Add this to your pubspec.yaml:

dependencies:
  zeba_academy_keyboard_manager: ^0.0.1

Then run:

flutter pub get

🚀 Import

import 'package:zeba_academy_keyboard_manager/zeba_academy_keyboard_manager.dart';

🧠 Usage

Basic Example

ZebaKeyboardFocusHandler(
  child: ZebaKeyboardAwareScrollView(
    child: Column(
      children: [
        TextField(),
      ],
    ),
  ),
)

📱 Full Example

import 'package:flutter/material.dart';
import 'package:zeba_academy_keyboard_manager/zeba_academy_keyboard_manager.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: const DemoPage(),
    );
  }
}

class DemoPage extends StatelessWidget {
  const DemoPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Keyboard Manager'),
      ),
      body: ZebaKeyboardFocusHandler(
        child: ZebaKeyboardAwareScrollView(
          child: Column(
            children: List.generate(
              20,
              (index) => Padding(
                padding: const EdgeInsets.only(bottom: 16),
                child: TextField(
                  decoration: InputDecoration(
                    hintText: 'Field ${index + 1}',
                    border: OutlineInputBorder(
                      borderRadius: BorderRadius.circular(12),
                    ),
                  ),
                ),
              ),
            ),
          ),
        ),
      ),
    );
  }
}

🔍 Keyboard Visibility Detection

ZebaKeyboardVisibilityBuilder(
  builder: (context, visible, height) {
    return Text(
      visible
          ? 'Keyboard Open'
          : 'Keyboard Closed',
    );
  },
)

🎯 Dismiss Keyboard Programmatically

ZebaKeyboardManager.dismissKeyboard(context);

📏 Get Keyboard Height

final height =
    ZebaKeyboardManager.keyboardHeight(context);

👀 Check Keyboard Visibility

final visible =
    ZebaKeyboardManager.isKeyboardVisible(context);

🧪 Testing

Run tests using:

flutter test

📊 Analyze Package

flutter analyze

🛠 Example App

Navigate to the example project:

cd example
flutter run

📂 Package Structure

lib/
 ├── zeba_academy_keyboard_manager.dart
 └── src/
      ├── keyboard_manager.dart
      ├── keyboard_visibility_builder.dart
      ├── keyboard_aware_scroll_view.dart
      └── keyboard_focus_handler.dart

🔥 Upcoming Features

  • Keyboard height stream
  • Smart focus traversal
  • Sticky bottom input support
  • Chat screen helpers
  • Keyboard safe-area utilities
  • Advanced animation controls
  • Bottom sheet keyboard handling

🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to fork this repository and submit a pull request.


📄 License

This project is licensed under the MIT License.


👨‍💻 About Me

✨ I’m Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects.

You can learn more about me and my work at sufyanism.com or connect with me on LinkedIn


🎓 Your all-in-one learning hub!

🚀 Explore courses and resources in coding, tech, and development at zeba.academy and code.zeba.academy.

Empower yourself with practical skills through curated tutorials, real-world projects, and hands-on experience.

Level up your tech game today! 💻✨


🌐 Zeba Academy

Zeba Academy is a learning platform dedicated to coding, technology, and development.

➡ Visit our main site: zeba.academy
➡ Explore hands-on courses and resources at: code.zeba.academy
➡ Check out our YouTube for more tutorials: YouTube Channel
➡ Follow us on Instagram: Instagram


❤️ Support

If you like this package, give it a ⭐ on GitHub and share it with the Flutter community!


Thank you for visiting!