Flutter 我如何将英语数字转换成另一种语言的数字(我使用的是孟加拉语)? 我把英文数字(如123)作为整数,现在我想用另一种语言形式(如。১২৩).
我使用了一个函数,它也可以工作。但是,它不会在同一个有状态类中多次工作。 它对第一个文本小部件有效,但对第二个小部件无效Flutter 我如何将英语数字转换成另一种语言的数字(我使用的是孟加拉语)? 我把英文数字(如123)作为整数,现在我想用另一种语言形式(如。১২৩).,flutter,dart,Flutter,Dart,我使用了一个函数,它也可以工作。但是,它不会在同一个有状态类中多次工作。 它对第一个文本小部件有效,但对第二个小部件无效 Column( children<Widget>:[ Text( "${convertNumber(123)}" ), Text( "${convertNumber(5630)}" ) ] ) 列( 儿童:[ 正文( “${convertNumber(123)}” ), 正文( “${con
Column(
children<Widget>:[
Text(
"${convertNumber(123)}"
),
Text(
"${convertNumber(5630)}"
)
]
)
列(
儿童:[
正文(
“${convertNumber(123)}”
),
正文(
“${convertNumber(5630)}”
)
]
)
字符串编号(int-eng){
孟加拉语字符串=“”;
对于(int i=0;i
当我将其用于同一有状态类中的其他数字时,它不起作用。错误是:
在生成过程中调用setState()或markNeedsBuild()
无法将此LowerHalf小部件标记为需要构建,因为框架已在构建小部件的过程中。只有当小部件的一个祖先当前正在构建时,才可以将其标记为需要在构建阶段构建。允许此异常,因为框架在子部件之前构建父部件,这意味着将始终生成脏子体。否则,框架可能不会在此生成阶段访问此小部件。调用setState()或markNeedsBuild()的小部件是:LowerHalf不要在转换函数内调用setState,只需使用函数获取值即可
小部件在调用setState函数后重建。在您的情况下,build调用setState再次触发build。我现在编辑了这个问题
String convertNumber(int eng){
String bengali = '';
for(int i = 0; i < eng.toString().length; i ++){
setState(() {
switch(eng.toString()[i]){
case '1':
bengali = bengali + '১';
break;
case '2':
bengali = bengali + '২';
break;
case '3':
bengali = bengali + '৩';
break;
case '4':
bengali = bengali + '৪';
break;
case '5':
bengali = bengali + '৫';
break;
case '6':
bengali = bengali + '৬';
break;
case '7':
bengali = bengali + '৭';
break;
case '8':
bengali = bengali + '৮';
break;
case '9':
bengali = bengali + '৯';
break;
default:
bengali = bengali + '0';
}
});
}
return bengali;
}