zoukankan      html  css  js  c++  java
  • flutter Scaffold添加ScaffoldStateKey 导致TextField 键盘弹起后马上收回的问题

    在用到 GlobalKey<ScaffoldState> 

    使用场景

    final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();

    return Scaffold(
      key: _scaffoldKey

    );

    _scaffoldKey.currentState.showBottomSheet((BuildContext context) {});

    使用_scaffoldKey的目的是 获取到ScaffoldState 对象,调用showBottomSheet,但是如果Scaffold中使用到了TextFiled widget会出现点击输入框键盘弹起后立刻收回的情况,如果不使用key: _scaffoldKey,就不会出现这种情况。

    解决方法:

    不使用GlobalKey<ScaffoldState>,直接根据Scaffold.of(content) 获取ScaffoldState 调用showBottomSheet

    return Scaffold(
      

    );

    Scaffold.of(content).showBottomSheet((BuildContext context) {});

    显示 snackbar 或者 bottom sheet 的时候,需要使用当前的 BuildContext 参数调用 Scaffold.of 函数来获取 ScaffoldState 对象,然后使用 ScaffoldState.showSnackBar 和 ScaffoldState.showBottomSheet 函数来显示。

     
  • 相关阅读:
    STL_算法_05_集合算法
    STL_算法_04_算术和生成算法
    STL_算法_03_拷贝和替换算法
    STL_算法_02_排序算法
    STL_算法_01_查找算法
    STL_容器使用时机
    STL_容器共通能力
    Qt5_选择文件对话框
    Qt5_当前exe所在路径
    Java 静态代理和动态代理
  • 原文地址:https://www.cnblogs.com/lulushen/p/12869436.html
Copyright © 2011-2022 走看看