No Directionality widget found

博客指出在Flutter开发中,因相同类型的Widget嵌套,如Row嵌套Row、Column嵌套Column等,会产生无界约束问题,导致无法确定方向。为避免此类问题,可使用Flexible或Expanded来识别剩余空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

The problem is not that you have not wrapped your widgets into MaterialApp. As the documentation says this error occurs due to the nesting of the same kind of Widgets like nesting of Row into Row, Column into Column or Column into ListView so the problem arises as it becomes unbounded constraints for the Widget so unable to identify the direction.

So to avoid this kind of problems usage of Flexible or Expanded occurs which identifies the remaining space.

 

用 materialapp:

 

import 'package:flutter/material.dart';
import 'dart:ui' as ui;
void main() {
  runApp(new MyApp());
}


class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(
      title: 'hello',
      home: Container(
        color: Colors.red,
        child: Column(
          children: <Widget>[
            RaisedButton(
              child: Text('just test', textDirection: TextDirection.ltr,),
            )
          ],
        ),
      ),
    );
  }
}

  

 

不用materialapp

import 'package:flutter/material.dart';
import 'dart:ui' as ui;
void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MediaQuery(
      data: MediaQueryData.fromWindow(ui.window),
      child: Directionality(textDirection: TextDirection.rtl, child: Container(
        color: Colors.grey,
        child: Column(
          children: <Widget>[
            RaisedButton(
              child: Text('just test', textDirection: TextDirection.ltr,),
            )
          ],
        ),
      )),
    );
  }
}

  

转载于:https://www.cnblogs.com/pythonClub/p/10569699.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值