假设我有一个主屏幕(有状态小部件),其中有一个变量count作为状态。在此主屏幕中,有一个按钮和另一个有状态小部件(我们称之为MyListWidget。根据变量的值MyListWidget初始化它自己的小部件。显然,如果您更改和的值,则不会发生任何事情,因为它创建了值中。我怎样才能强制重建?我知道在这个例子中我们可以移动我们在方法中所做的事情。但在我真正的问题中,我无法移动我在方法中所做的事情。initStatecountcountSetStateMyListWidgetinitStateMyListWidgetinitStatebuildinitStatebuild
这是完整的代码示例:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int count = 5;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Row(
children: [
Expanded( …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Flutter 创建一个带有图标和标题的卡片小部件。但是我无法在卡片边框和小部件之间添加一些边距。
这是我的卡代码:
class MyCard extends StatelessWidget{
MyCard({this.title, this.icon});
final Widget title;
final Widget icon;
@override
Widget build(BuildContext context) {
return new Container(
padding: EdgeInsets.only(bottom: 20.0),
child: new Card(
child: new Row(
children: <Widget>[
this.icon,
new Container(
width: 20.0, //I also don't know if this is legal
),
this.title
]
)
)
);
}
}
Run Code Online (Sandbox Code Playgroud)
这就是结果,但我想在卡片内部有更多的填充,以便有更高的卡片和更多的图标在右边。
我正在开发一个简单的程序,我需要从Combobox. 当 is 在第一个创建的窗口中时,这很容易Combobox,但是例如,如果我有两个窗口并且Combobox在第二个窗口中,我无法从中读取值。
例如 :
from tkinter import *
from tkinter import ttk
def comando():
print(box_value.get())
parent = Tk() #first created window
ciao=Tk() #second created window
box_value=StringVar()
coltbox = ttk.Combobox(ciao, textvariable=box_value, state='readonly')
coltbox["values"] = ["prova","ciao","come","stai"]
coltbox.current(0)
coltbox.grid(row=0)
Button(ciao,text="Salva", command=comando, width=20).grid(row=1)
mainloop()
Run Code Online (Sandbox Code Playgroud)
如果我将小部件的父级更改为父ciao级,它就可以工作了!谁能给我解释一下吗?
今天我最新的android studio到1.4版本.我在changelog中看到你可以用api <21编译带有矢量图像的应用程序.我试过了.我将gradle版本从1.3.0更改为1.4.1并实现了矢量图像而不是栅格.在构建过程中,我收到此错误:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value 2
Run Code Online (Sandbox Code Playgroud)
对不起,我的英语不好.我希望你明白.提前致谢.
我正在 flutter 中使用 DraggableScrollableSheet,我想知道该工作表是折叠还是展开。DraggableScrollableSheet 的构建器提供了一个scrollController,我向其附加了一个侦听器。
我看到这个有用的指南,但他们创建了一个 ScrollController,但在我的例子中,scrollController 是由构造函数提供的。我不明白我怎样才能获得他们相同的行为
这是我的代码:
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SizedBox.expand(
child: myBottomSheet()
),
);
}
}
class myBottomSheet extends StatefulWidget{
@override
_myBottomSheetState createState() => _myBottomSheetState();
}
class _myBottomSheetState extends State<myBottomSheet> {
double appbarSize=0.08;
@override
Widget build(BuildContext context) {
return DraggableScrollableSheet(
maxChildSize: 0.8,
minChildSize: appbarSize,
initialChildSize: appbarSize,
builder: (BuildContext context, ScrollController scrollController) {
scrollController.addListener(_scrollListener); …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中有一个 DraggableScrollableSheet 和一个 FAB。如果 DraggableScrollableSheet 展开,我希望 FAB 不可见。我需要检查扩展事件
我尝试将侦听器附加到 scrollController 并检查 scrollController.offset 的值。但我意识到监听器是在 DraggableScrollableSheet 完全展开时触发的,而不是在此之前触发。有没有另一种方法来检查它是展开还是折叠?
double appbarSize = 0.08;
double offsetVisibility=100.0;
bool FAB_visibility=true;
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: Visibility(
visible: FAB_visibility,
child: FloatingActionButton(
child: Icon(Icons.add),
),
),
body: SizedBox.expand(
child: DraggableScrollableSheet(
maxChildSize: 0.8,
minChildSize: appbarSize,
initialChildSize: appbarSize,
builder: (BuildContext context, ScrollController scrollController) {
_scrollListener() {
if(FAB_visibility==false && scrollController.offset<=offsetVisibility){
setState(() {
FAB_visibility=true;
});
}
else if(FAB_visibility==true && scrollController.offset>offsetVisibility){
setState(() {
FAB_visibility=false;
});
}
}
scrollController.addListener(_scrollListener);
return Container(
decoration: …Run Code Online (Sandbox Code Playgroud)