android – 如何在flutter中为文本添加阴影?
发布时间:2020-12-14 14:58:30 所属栏目:百科 来源:网络整理
导读:我在TextStyle中搜索了阴影选项,但我没有找到.所以我问:如何在颤动的文本中添加阴影?可能吗? 例: new Text("asd"styel: new TextStyle( //add shadow?)); 解决方法 如 issue 3402和 Gary Qian’s answer below所述,Flutter现在提供了一种无需任何解决方
|
我在TextStyle中搜索了阴影选项,但我没有找到.所以我问:如何在颤动的文本中添加阴影?可能吗?
例: new Text( "asd" styel: new TextStyle( //add shadow? )); 解决方法
如
issue 3402和
Gary Qian’s answer below所述,Flutter现在提供了一种无需任何解决方法的方法.
虽然这可以进入更稳定的通道,但可以使用BackdropFilter伪造阴影.
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(
home: new MyApp(),));
}
class ShadowText extends StatelessWidget {
ShadowText(this.data,{ this.style }) : assert(data != null);
final String data;
final TextStyle style;
Widget build(BuildContext context) {
return new ClipRect(
child: new Stack(
children: [
new Positioned(
top: 2.0,left: 2.0,child: new Text(
data,style: style.copyWith(color: Colors.black.withOpacity(0.5)),),new BackdropFilter(
filter: new ui.ImageFilter.blur(sigmaX: 2.0,sigmaY: 2.0),child: new Text(data,style: style),],);
}
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Container(
child: new Center(
child: new ShadowText(
'Hello world!',style: Theme.of(context).textTheme.display3,);
}
}
或者,如果你不关心模糊,只需制作一个带有一些半透明文本小部件的堆栈,这些小部件堆叠不完全相互叠加. 像这样: import 'package:flutter/material.dart';
class ShadowText extends StatelessWidget {
final String data;
final TextStyle style;
final TextAlign textAlign;
final TextDirection textDirection;
final bool softWrap;
final TextOverflow overflow;
final double textScaleFactor;
final int maxLines;
const ShadowText(this.data,{
Key key,this.style,this.textAlign,this.textDirection,this.softWrap,this.overflow,this.textScaleFactor,this.maxLines,}) : assert(data != null);
Widget build(BuildContext context) {
return new ClipRect(
child: new Stack(
children: [
new Positioned(
top: 2.0,textAlign: textAlign,textDirection: textDirection,softWrap: softWrap,overflow: overflow,textScaleFactor: textScaleFactor,maxLines: maxLines,new Text(
data,style: style,);
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读

