Добавление текста, изображений или списка просмотра на эшафот в Flutter

Мне нужно добавить изображение и текст ниже в параграфах на скаффолде вместе со списком или чем-то вроде таблицы в HTML.

Я прошел пример добавления текста, но он не содержит никаких отступов, и это от края до края, также я не уверен, как вставить разрыв в текст.

У меня есть несколько классов с похожей структурой, как это вызывается из панели навигации.

Вот пример класса по умолчанию:

//Contact Info
class Fourth extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Contact Info"),
      ),
      body: Center( 
      ),
    );
  }
} 

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

class ThirdScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Supreme Council"),
      ),
      body: Center(
        child: new RichText(
          text: new TextSpan(
            //text: 'Hello ',
            //style: DefaultTextStyle.of(context).style,
            children: <TextSpan>[
              new TextSpan(
                text: 'Lorem ipsum dolor sit amet',
                style: new TextStyle(color: Colors.black),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

2 ответа

Есть несколько способов показать такой список. Вы можете обернуть столбец в SingleChildScrollView, который позволит вам прокручивать. Затем просто добавьте несколько отступов. Также обратите внимание на Flutter Docs и его каталог виджетов:

new SingleChildScrollView(
    child: Column (
        Padding( // some padding
            padding: EdgeInsets.only(top: 20.0, right: 30.0, left: 30.0, bottom: 50.0),
            child: Image.asset(...), // add the image source
        ),
        Padding( // some padding
            padding: EdgeInsets.only(top: 20.0, right: 30.0, left: 30.0, bottom: 50.0),
            child: Text("Lorem ipsum dolor sit amet", style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold)), // header
        ),
        Padding( // some padding
            padding: EdgeInsets.only(top: 10.0, right: 50.0, left: 50.0),
            child: Text("Some more text"), // add text
        ),
    )
)

В зависимости от того, что именно вам нужно, вы также можете использовать плагин flutter_html_view, который поддерживает некоторые основные HTML-теги:

import 'package:flutter_html_textview/flutter_html_textview.dart';

String html = '<img src="example.com/yourimage.png"></img><h1>Hello world!</h1><p>Some more text</p>';
new HtmlTextView(data: html);

Нажмите на свой RichText, нажмите Alt+Enter и затем выберите, чтобы добавить Padding. У вас будет много вариантов, вы можете увидеть их на странице класса EdgeInsets:

https://docs.flutter.io/flutter/painting/EdgeInsets-class.html

Вы можете добавить разрывы строк в своем тексте, используя \n, например: "Этот текст добавит разрыв строки \n здесь".

Нет, вам не нужно добавлять пробелы по обе стороны от \n. Вышеуказанные результаты в:

Этот текст добавит разрыв строки здесь.

Другие вопросы по тегам