flutter_markdown множественные разрывы строк не работают

#flutter #dart #markdown

#flutter #dart #markdown

Вопрос:

Я пытаюсь использовать пакет flutter_markdown для уценки некоторого содержимого. Но он не работает должным образом для нескольких разрывов строк.

  String exampleData="nnLine 1. nnLine2.nnnn### Heading nnLine3";
 Markdown(data: exampleData,)
 

Вывод введите описание изображения здесь

Я пробовал с разрывами строк «<br />», но это не сработало

  String exampleData="Line 1. nnLine2. <br /> <br /> nn### Heading nnLine3";
 

Out put — это введите описание изображения здесь

Может кто-нибудь помочь мне с этими разрывами строк или любыми альтернативными пакетами.

Комментарии:

1. попробуйте </br> вместо <br/> . Я не уверен, поможет ли это

2. @AdnanAlshami не работает

3. попробуйте этот пакет: pub.dev/packages/html

4. Спросите создателя пакета, я уже давно сделал запрос на извлечение, и он был очень активен в то время.

Ответ №1:

проверьте ссылку ниже!!

введите описание ссылки здесь

тег br не работает, поэтому вместо тега br используйте 3 косых черты n

 String exampleData="Line 1. \nLine2. \n## Heading \nLine3";
 

Ответ №2:

Я нашел неприятный трюк (не решение), который может помочь в этом конкретном случае. Я не рекомендую это, но пока не смог найти никакого другого обходного пути, используя flutter_markdown, и я не смог найти ни одного другого пакета для замены.

Извлеките изображение

Вы можете воспользоваться преимуществами использования тройных апострофов для добавления вертикального пробела.

Это неприятный обходной путь, но пока не удалось найти ничего лучшего для добавления вертикального пространства.

Комментарии:

1. Но у меня нет данных разметки. У меня есть код markdown. guides.github.com/pdfs/markdown-cheatsheet-online.pdf

Ответ №3:

Замените ваш <br> на x03 такой. x03 является ли End of text( ETX ) в ASCII:

 text.replaceAll('<br>', 'x03');
 

Ответ №4:

Достойный обходной путь.

В вызываемый пакет Flutter_markdown добавлена новая функция paddingBuilders , начиная с версии 0.6.8. вы можете добавить отступы ко всем блокам, доступным в markdown, как показано ниже.

 MarkdownBody(
  data: markDown,
  paddingBuilders: <String,
  MarkdownPaddingBuilder>{
    'p': PPaddingBuilder(),
    'h3': H3PaddingBuilder(),
  },
)
 

где вы должны определить конструктор заполнения, как показано ниже.

 class PPaddingBuilder extends MarkdownPaddingBuilder {
  @override
  EdgeInsets getPadding() => const EdgeInsets.only(top: SGSpacing.xlarge);
}

class H3PaddingBuilder extends MarkdownPaddingBuilder {
  @override
  EdgeInsets getPadding() => const EdgeInsets.only(top: SGSpacing.xxlarge);
}
 

Список всех blockTag доступных в Flutter_markdown из исходного кода приведен ниже:

 const List<String> _kBlockTags = <String>[
  'p',
  'h1',
  'h2',
  'h3',
  'h4',
  'h5',
  'h6',
  'li',
  'blockquote',
  'pre',
  'ol',
  'ul',
  'hr',
  'table',
  'thead',
  'tbody',
  'tr'
];
 

PS: заполнение не будет работать для встроенных тегов. применим только тег блока.

Ответ №5:

Привет, я нашел этот пакет https://pub.dev/packages/markdown_widget

Это не полное решение, но этот пакет поддерживает некоторые теги ОС html, такие как <br> , в этом случае я добавил этот тег в markdown и работает

Ответ №6:

Мое решение, когда я использую строку в одну строку, не используйте «»» или «‘, используйте n с 2 пробелами ниже кода, отображающего тот же пользовательский интерфейс

var _markdownSingleLine = ‘Demo n Разрыв n строки’;

var _markdownMultiLine = «‘ Демо

-строка разрыва «‘;

Демонстрационная строка разрыва

Ответ №7:

Согласно удаленной проблеме, flutter_markdown поддерживает явные разрывы строк с использованием обратной косой черты в конце строки. Используя этот синтаксис, ваш пример будет:

 

Line 1.

Line2.



### Heading

Line3