import 'package:flutter/material.dart'; /// Utility class untuk mengelola keyboard dengan lebih baik class KeyboardUtils { /// Meminta fokus ke field tertentu static void requestFocus(BuildContext context, FocusNode focusNode) { FocusScope.of(context).requestFocus(focusNode); } /// Menutup keyboard hanya jika sedang terbuka dan tidak ada field yang difokuskan static void dismissKeyboardIfNeeded(BuildContext context) { final currentFocus = FocusScope.of(context); if (!currentFocus.hasPrimaryFocus && currentFocus.focusedChild != null) { FocusManager.instance.primaryFocus?.unfocus(); } } /// Menutup keyboard dengan paksa static void forceCloseKeyboard() { FocusManager.instance.primaryFocus?.unfocus(); } /// Menambahkan padding untuk menghindari keyboard static EdgeInsets keyboardAvoidingPadding(BuildContext context) { final keyboardHeight = MediaQuery.of(context).viewInsets.bottom; return EdgeInsets.only( bottom: keyboardHeight > 0 ? keyboardHeight + 20 : 0, ); } }