颤振,文字到顶部

时间:2019-08-09 15:12:24

标签: text flutter dart text-alignment

我已经开始和Flutter一起玩了。

我创建了一个页面,如下所示:

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:smooth_star_rating/smooth_star_rating.dart';
import 'package:intl/intl.dart';

class LandOffer extends StatefulWidget {
  final String startPoint;
  final String endPoint;

  const LandOffer({Key key, this.startPoint, this.endPoint}) : super(key: key);

  @override
  State<StatefulWidget> createState() {
    return _LandOffer(startPoint: this.startPoint, endPoint: this.endPoint);
  }
}

class _LandOffer extends State<LandOffer> {
  final String startPoint;
  final String endPoint;
  var _json;
  String _name;
  String _lastName;
  String _image;
  var isLoading = false;

  _fetchBackendData() async {
    setState(() {
      isLoading = true;
      print('Beginning loading');
    });
    final response =
        await http.get("https://randomuser.me/api/?inc=name,picture");
    if (response.statusCode == 200) {
      _json = json.decode(response.body);
      setState(() {
        isLoading = false;
        _name = toBeginningOfSentenceCase(_json['results'][0]['name']['first']);
        _lastName =
            toBeginningOfSentenceCase(_json['results'][0]['name']['last']);
        _image = _json['results'][0]['picture']['large'];
        print('Done loading...');
      });
    } else {
      throw Exception('Failed to load backend data');
    }
  }

  @override
  void initState() {
    super.initState();
    _fetchBackendData().then((result) {
      print('Feched data from backend');
    });
  }

  _LandOffer({this.startPoint, this.endPoint});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('Describe your offer '),
          automaticallyImplyLeading: true,
        ),
        body: isLoading
            ? Center(
                child: CircularProgressIndicator(),
              )
            : ListView(
                children: <Widget>[
                  Column(
                    children: <Widget>[
                      Row(
                        children: <Widget>[
                          Image(
                            image: NetworkImage(_image),
                          ),
                          Column(
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: <Widget>[
                              Text(
                                'First name: $_name',
                                textAlign: TextAlign.left,
                              ),
                              Text(
                                'Last name: $_lastName',
                                textAlign: TextAlign.left,
                              ),
                              Text('Rating'),
                              SmoothStarRating(
                                rating: 3.2,
                              ),
                            ],
                          ),
                        ],
                      ),
                    ],
                  ),
                ],
              ));
  }
}

另外显示如下图像:

image

但是似乎在文本中添加了填充。

如果需要,我想将文本移到最上方,并添加一个填充。

此外,如果将填充应用于图像,则会将填充应用于整个行,这不是理想的结果。

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

由于图像高度是连续的较大,因此,如果向图像添加填充(假设顶部,底部,左侧,右侧),行高度也会扩大。除非您只想填充(左,右),否则您需要约束图像的高度。

  Row(
    crossAxisAlignment: CrossAxisAlignment.start,    //<-- move text top
    children: <Widget>[
      Padding(
        padding: EdgeInsets.all(5),
        child: Image(
          image: NetworkImage(_image),
        ),
      ),
      Column(
        crossAxisAlignment: CrossAxisAlignment.start,   //<-- move text top
        children: <Widget>[
          Text(
            'First name: $_name',
            textAlign: TextAlign.left,
          ),
          Text(
            'Last name: $_lastName',
            textAlign: TextAlign.left,
          ),
          Text('Rating'),
          SmoothStarRating(
            rating: 3.2,
          ),
        ],
      ),
    ],
  ),
相关问题