4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Flutter】ColumnやRowのtextDirectionで起きたエラー

Last updated at Posted at 2020-06-14

ColumnやRowのtextDirectionでエラーが起きる

出会った時

RowのtextDirectionで

TextDirection.rtl

を書こうとすると
The getter 'rtl' isn't defined for the type 'TextDirection'.
と怒られる。
代わりに変換で出てくるのは
TextDirection.RTL
大文字だったっけ?と思いながら書いてもエラー。。

原因

TextDirection.rtl

エラー文は

The argument type 'TextDirection (where TextDirection is defined in /Users/xxxx/flutter/.pub-cache/hosted/pub.dartlang.org/intl-
0.16.1/lib/src/intl/bidi_utils.dart)' can't be assigned to the parameter type 'TextDirection (where TextDirection is defined in /Users/xxxx/flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart)'.dartargument_type_not_assignable
bidi_utils.dart(26, 7): TextDirection is defined in /Users/xxxx/flutter/.pub-cache/hosted/pub.dartlang.org/intl-0.16.1/lib/src/intl/bidi_utils.dart
text.dart(1287, 6): TextDirection is defined in /Users/xxxx/flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart

うーん、TextDirectionが二つ定義されてるらしい?
そのbidi_utils.dart

class TextDirection {
  static const LTR = TextDirection._('LTR', 'ltr');
  static const RTL = TextDirection._('RTL', 'rtl');

がある。これが原因か。そしてこのファイルは

import 'package:intl/intl.dart'

このパッケージによるファイルと判明。

解決方法

1.パッケージを消す
import 'package:intl/intl.dart'
を消せば問題は解決する
しかし僕はDateFormatを使っていたため、これを消すわけにはいかず。

2.インポート接頭辞
importには接頭辞を指定することができます。

import 'package:intl/intl.dart' as hoge

とすると

(old) DateFormat('HH:mm').format(date);

(new) format.DateFormat('HH:mm').format(date);

で使用できるようになる。すると他には影響せず、

TextDirection.rtl

が使えるようになりました。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?