LoginSignup
0
0

FlutterのTextが改行される問題を対応する(絵文字対応)

Last updated at Posted at 2024-02-17

全て対象コード(ASCIIコード+対象)の場合はそのまま、
対象コード以外も含む場合は、隣り合う左の値の対象コードを
改行可能な0文字のスペース+対象コードに置き換える。
https://github.com/flutter/flutter/issues/61081#issuecomment-1103330522

  String convertCharWrapString(String str) {
    // if (str.contains('')) {
    //   var _ = 0;
    // }

    var otherReg = '[^ -~\'’‘]+';
    var targetReg = '[ -~\'’‘]+';
    String charWrapStr;
    if (RegExp(otherReg).hasMatch(str)) {
      charWrapStr = '';
      for (int i = 0; i < str.length; i++) {
        var char = str[i];
        if (RegExp(targetReg).hasMatch(char)) {
          // 改行可能な0文字のスペース
          charWrapStr += '\u200b$char';
        } else {
          charWrapStr += char;
        }
      }
    } else {
      charWrapStr = str;
    }

    // 改行しないスペースに変換
    charWrapStr = charWrapStr.replaceAll(' ', '\u00a0')
    // -の前後に改行禁止文字を追加
        .replaceAll('-', '\ufeff-\ufeff');

    return charWrapStr;
  }
0
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
0
0