Flutter - すばやくクリックすると、複数のブレット ボックスの最適化がポップアップ表示されます

デモアドレス: https://github.com/iotjin/jh_flutter_demo
代码不定时更新,请前往github查看最新代码

Flutter で showModalBottomSheet を使用してボトム メニューをポップアップする場合、ユーザーがすばやく複数回クリックすると、複数のボトム メニューがポップアップし、ユーザー エクスペリエンスに影響します。これを防ぐために、フラグを使用して下部メニューが開いているかどうかを制御し、下部メニューが閉じられた後にのみ再度開くことができます。

サンプルコードは次のとおりです。

bool _isBottomSheetOpen = false;

void _showBottomSheet() {
    
    
  if (!_isBottomSheetOpen) {
    
     // 如果底部菜单未打开
    _isBottomSheetOpen = true; // 设置打开标志
    showModalBottomSheet(
      context: context,
      builder: (BuildContext context) {
    
    
        return Container(
          height: 200,
          child: Center(
            child: Text('Bottom Sheet'),
          ),
        );
      },
    ).whenComplete(() {
    
     // 当底部菜单关闭时
      _isBottomSheetOpen = false; // 设置关闭标志
    });
  }
}

上記のコードでは、ブール値 _isBottomSheetOpen を使用して、下部メニューが開かれたかどうかを記録します。_showBottomSheet メソッドでは、下部のメニューが開いていない場合、_isBottomSheetOpen を true に設定し、showModalBottomSheet メソッドを呼び出して下部のメニューを開きます。一番下のシートが閉じられたら、_isBottomSheetOpen を false に設定して、次に一番下のシートを再度開くことができるようにします。

このようにして、ユーザーが複数のクイッククリックを行ったために複数の下部メニューが同時に開かれるという状況を回避できるため、ユーザーエクスペリエンスが向上します。

Supongo que te gusta

Origin blog.csdn.net/iotjin/article/details/129613306
Recomendado
Clasificación