No Directionality widget found

 

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,),
            )
          ],
        ),
      )),
    );
  }
}

  

posted @ 2019-03-21 09:48  CrossPython  阅读(1155)  评论(0编辑  收藏  举报