小编Pan*_*m T的帖子

为什么当我使用键盘时我的小部件会重建

当键盘出现时,我遇到了重建小部件的问题。我尝试使用 sizer 包,但永远无法弄清楚如何让它工作,当我从这个屏幕返回时,前一个屏幕中的所有内容都将重建,请注意:如果我不单击键盘,则typeaheadwidget键盘不会单击t 显示状态保留在前一个屏幕中,但一旦键盘弹出,小部件就会重建,您可以检查一下吗?

class SearchScreen extends StatefulWidget {
  @override
  _SearchScreenState createState() => _SearchScreenState();
}

class _SearchScreenState extends State<SearchScreen> {
  TextEditingController pickUpTextEditingController = TextEditingController();
  TextEditingController dropOffTextEditingController = TextEditingController();

  @override
  void initState() {
    super.initState();
  }

  @override
  @mustCallSuper
  Widget build(BuildContext context) {
    String placeAddress =
        Provider.of<AppData>(context).pickUpLocation.placeName ?? "";
    pickUpTextEditingController.text = placeAddress;

    return Scaffold(
      resizeToAvoidBottomInset: false,
      body: Stack(
        children: [
          Container(
            height: 250.0,
            decoration: BoxDecoration(
              color: Colors.white,
              boxShadow: [
                BoxShadow(
                  color: Colors.black,
                  blurRadius: 6.0,
                  spreadRadius: 0.5,
                  offset: Offset(0.7, 0.7),
                )
              ], …
Run Code Online (Sandbox Code Playgroud)

dart flutter

10
推荐指数
2
解决办法
1万
查看次数

如何将 Future Builder 与提供商一起使用?

CircularProgressIndicator我的主要目标是在获得位置地址之前显示 a placename,但我不断收到此错误 The getter 'placeName' was called on null.。我确实尝试检查该nullfutureBuilder,但我相信我的实现是错误的。您能看一下吗?这是我的AppData班级

class AppData extends ChangeNotifier {
 Address pickUpLocation;
 void updatePickUpLocationAddress(Address pickUpAddress) {
    pickUpLocation = pickUpAddress;
    notifyListeners();
  }
}
Run Code Online (Sandbox Code Playgroud)

这是Address班级

class Address {
  String placeFormattedAddress;
  dynamic placeName;
  String placeId;
  double latitude;
  double longitude;

  Address(
      {this.placeFormattedAddress,
      this.placeName,
      this.placeId,
      this.latitude,
      this.longitude});
}
Run Code Online (Sandbox Code Playgroud)

现在,MainScreen我正在像这样使用它,但错误仍然存​​在。

 @override
  Widget build(BuildContext context) {
\\\
body: Stack( 
\\\
Flexible(
    child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
            FutureBuilder ( …
Run Code Online (Sandbox Code Playgroud)

dart flutter

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

dart ×2

flutter ×2