我希望能够在Widget完成构建/加载后运行函数,但我不确定如何.我目前的用例是检查用户是否经过身份验证,如果没有,则重定向到登录视图.我不想在之前检查并推送登录视图或主视图,它需要在主视图加载后发生.有什么我可以用来做这个吗?
谢谢
我正在尝试将ClipRect与其中的Column一起使用,但它似乎效果不佳。
我想要实现的是剪辑列的内容并在溢出时显示文本消息(如果列的内容无法在可用空间内显示)。
你对我如何实现它有什么建议吗?
import 'package:flutter/material.dart';
void main() => runApp(ContentOverflowDetectionApp());
class ContentOverflowDetectionApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Overflow detection"),
),
body: Stack(
fit: StackFit.expand,
children: [
ClipRect(
child: Column(
children: [
Container(
width: 300,
height: 400,
color: Colors.green[200],
child: Text('first widget'),
),
Container(
width: 350,
height: 350,
color: Colors.yellow[200],
child: Text('overflowed widget'),
),
],
),
),
Positioned(
child: Align(
alignment: FractionalOffset.bottomCenter,
child: Text("SHOW THIS TEXT ONLY IF …Run Code Online (Sandbox Code Playgroud) 有什么方法可以测量尚未构建的小部件的尺寸,但这只是一个变量示例:
列 myColumn = Column(children[......]);
myColumn.iWouldLikeToGetItsHeightAndWidth();
我Wrap在我的SliverAppBar. 现在,当 Wrap 的大小发生变化(动态)时,我需要收到通知,这样我就可以相应地更改 SliverAppBar 中的 flexSpace 的高度。
我阅读了SizeChangedLayoutNotifier的文档,但我不太明白如何使用它。我Wrap小时候把我包裹在 a 中SizeChangedLayoutNotifier,但对我来说,非常不清楚如何用 捕获通知NotificationListener<SizeChangedLayoutNotification>。我找不到任何代码示例。
我非常感谢您的帮助:) 谢谢!
我遇到了这个例子来获取小部件的大小/位置:https : //medium.com/@diegoveloper/flutter-widget-size-and-position-b0a9ffed9407
我的代码有什么问题?
我收到错误:
The following NoSuchMethodError was thrown while handling a gesture:
I/flutter ( 8566): The method 'findRenderObject' was called on null.
I/flutter ( 8566): Receiver: null
I/flutter ( 8566): Tried calling: findRenderObject()
Run Code Online (Sandbox Code Playgroud)
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(home: MyWidgetSizeTMP());
}
}
class MyWidgetSizeTMP extends StatefulWidget{
@override
MyWidgetSizeTMPState createState() {
return new MyWidgetSizeTMPState();
}
}
class MyWidgetSizeTMPState extends State<MyWidgetSizeTMP> {
//creating Key for red panel …Run Code Online (Sandbox Code Playgroud) 滑块的每一页都是一个 Card 小部件,其子级为 ListView。
如果卡片不在轮播小部件内,它会随着列表视图内元素的增加而扩展。
我想为滑块的每个页面保持这种行为,但是当我将卡片放入滑块内时,它们不再根据内容调整大小,但似乎有一个预定义的高度(即使我没有指定)任何!)。
如何动态更新滑块内卡片的高度?
这是我的代码:
main.dart文件
import 'package:flutter/material.dart';
import 'carousel.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Slider App',
home: MyHomePage(),
);
}
}
class GeneralEvent {
final String title;
final String desc;
GeneralEvent(this.title, this.desc);
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
final List<GeneralEvent> userEvents = [
GeneralEvent(
"List Item 1",
"Lorem ipsum dolor sit amet, …Run Code Online (Sandbox Code Playgroud) 带有图像和类别名称的类别网格显示在图像下方
Widget build(BuildContext context) {
return FutureBuilder(
future: categoriesService.getCategories(1),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.error != null) {
print('error ${snapshot.error}');
return Text(snapshot.error.toString());
}
// YOUR CUSTOM CODE GOES HERE
return Container(
// padding: const EdgeInsets.all(0.0),
child: GridView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
// childAspectRatio: 19 / 12,
mainAxisSpacing: 10.0,
crossAxisSpacing: 10.0,
),
itemCount: snapshot.data.length,
itemBuilder: (context, index) {
Category category = snapshot.data[index];
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[ …Run Code Online (Sandbox Code Playgroud) 我想知道Flutter中是否有一种方法可以显示替代文本(如果原始文本溢出)。
例:
默认情况下,我显示的是完整日期:January 1, 2019。
但是,如果我在小屏幕上会溢出(January 1...),则想显示一个不同的字符串(1/1/2019)。
我有一个简单的布局,由一个 Column 和几个孩子组成。其中一些是包含孩子的行。我在 Column 的孩子之间添加了 Dividers,在 Rows 的孩子之间添加了 VerticalDividers。(水平)分隔线显示良好。但是 VerticalDividers 没有显示在应用程序中。
我已经尝试将 Rows 子项包装在其他一些布局小部件(如 Container)中,但似乎没有任何效果。
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Test App'),
),
body: Column(
children: <Widget>[
Expanded(
child: Center(
child: Text('Hello World'),
),
),
Divider(height: 1),
Row( …Run Code Online (Sandbox Code Playgroud)