今天来和大家分享一个比较冷门的知识点,怎么修改 "复制拷贝" 弹出菜单的样式! 这个菜单弹出来也比较简单,就是长按文字或者是长按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
感觉对小伙伴们有点帮助的话,欢迎点赞,加关注哦,后面会分享更多干货~~
网友评论