用阿拉伯格式的飞镖显示数字

时间:2018-10-17 14:39:41

标签: dart flutter

如何在Flutter应用中以阿拉伯格式显示数字?

不是将数字显示为1,2,3,而是将它们显示为١、٢、٣

我尝试使用NumberFormat类,但是它不起作用。

Flutter Doctor:

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel dev, v0.8.2, on Microsoft Windows [Version 10.0.17134.345], locale ar-SA)
[√] Android toolchain - develop for Android devices (Android SDK 28.0.2)
[√] Android Studio (version 3.1)
[√] IntelliJ IDEA Community Edition (version 2018.2)
[!] VS Code, 64-bit edition (version 1.27.2)
[√] Connected devices (2 available)

! Doctor found issues in 1 category.

示例:

import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

import 'package:intl/intl.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      locale: Locale("ar"),
      home: new Scaffold(
        body: new Center(
          child: new Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              new Text(NumberFormat().format(1)),
              new Text(NumberFormat().format(2)),
              new Text(NumberFormat().format(3)),
            ],
          ),
        ),
      ),
    );
  }
}

3 个答案:

答案 0 :(得分:2)

Adding和支持阿拉伯数字的font解决了这个问题。

答案 1 :(得分:0)

此软件包将为您完成 arabic_numbers https://pub.dev/packages/arabic_numbers

答案 2 :(得分:0)

String convertToArabicNumber(String number) {
  String res = '';

  final arabics = ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];
  number.characters.forEach((element) {
     res += arabics[int.parse(element)];
  });

/*   final latins = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; */
  return res;
}