美文网首页Flutter
flutter 修改 复制拷贝(copy paste) 弹出菜单

flutter 修改 复制拷贝(copy paste) 弹出菜单

作者: 微风_10a5 | 来源:发表于2020-09-28 16:44 被阅读0次

    今天来和大家分享一个比较冷门的知识点,怎么修改 "复制拷贝" 弹出菜单的样式! 这个菜单弹出来也比较简单,就是长按文字或者是长按TextField.

    我们先来看看,不修改样式会有什么样的问题,请查看下图

    image.png

    这个图想说明的是,当用户长按 TextField 会出现 "paste" 菜单( 但因为文字颜色原因,我们看到的是黑乎乎的一个方块).那正常的情况是什么样子的呢,请看下图


    image.png
    出现的原因

    当我们在main文件主题(ThemeData)里面设置了cardColor的话,就有可能出现这个问题,如下

    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primaryColor: Color(0xff505050),
            cardColor: Color(0xff000000),
            visualDensity: VisualDensity.adaptivePlatformDensity,
          ),
          home: FirstPage(),
        );
      }
    }
    

    上面的代码设置了主颜色primaryColor为深灰色,cardColor为黑色;其中cardColor会影响paste菜单的文字为黑色,导致背景色是黑色,文字也是黑色,所以看上去就是黑乎乎的一个方块

    解决办法

    方法一
    当然是能不用cardColor这个主题,就不用它,就不会出现这个问题了,这样也不会出现全是黑色的情况.

    方法二
    假如,你的项目,已经用了cardColor这个主题,并且已经上线了一段时间,正式运行了.这个可能就需要方法二了.就是再加一句代码brightness: Brightness.dark,就能解决此问题,如下

    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primaryColor: Color(0xff505050),
            cardColor: Color(0xff000000),
            brightness: Brightness.dark,
            visualDensity: VisualDensity.adaptivePlatformDensity,
          ),
          home: FirstPage(),
        );
      }
    }
    

    温馨提醒一下
    brightness: Brightness.dark,虽然只加了一行代码,就是把主题改为黑色,但会影响到整个app的色调,有些可能就会出现问题,希望小伙伴们知道. 慎用~~慎重使用Brightness.dark

    结尾

    最后再上一张,正常的效果图


    image.png

    感觉对小伙伴们有点帮助的话,欢迎点赞,加关注哦,后面会分享更多干货~~

    相关文章

      网友评论

        本文标题:flutter 修改 复制拷贝(copy paste) 弹出菜单

        本文链接:https://www.haomeiwen.com/subject/fjuduktx.html