- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在构建一个测验应用程序,它会在用户提交他们选择的答案后显示对正确答案的解释。
布局上有两个按钮——“下一个问题”和“提交答案”。
在初始状态下,“下一个问题”按钮很微妙,因为它不可点击,只有“提交答案”按钮可点击。
Click Here to View the Layout of the Initial State
当点击“提交答案”按钮时,会发生两个 Action :
1.“提交答案”按钮变得微妙且不可点击,“下一个问题”按钮变得粗体且充满活力,当然可以点击。
2. 此外,在两个按钮所在的行下方,会出现一个附加部分(可能是另一个容器,我不知道),显示正确答案的解释。
我需要一些帮助来实现上述两个 Action
到目前为止,这是我的代码:
Widget nextQuestion = new RaisedButton(
padding: const EdgeInsets.all(10.0),
child: const Text('Next Question'),
color: Color(0xFFE9E9E9),
elevation: 0.0,
onPressed: () {
null;
},
);
Widget submitAnswer = new RaisedButton(
padding: const EdgeInsets.all(10.0),
child: const Text('Submit Answer'),
color: Color(0xFFE08284),
elevation: 5.0,
onPressed: () {
null;
},
);
return Scaffold(
body: new CustomScrollView(
slivers: <Widget>[
new SliverPadding(
padding: new EdgeInsets.all(0.0),
sliver: new SliverList(
delegate: new SliverChildListDelegate([
new Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisSize: MainAxisSize.min,
children: <Widget>[nextQuestion, submitAnswer]),
new SizedBox(height: 50.0),
]),
),
),
],
),
);
最佳答案
您可以使用setState 方法实现。
我实现了类似的东西。
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
title: 'Demo',
initialRoute: '/',
routes: {
'/': (context) => FirstScreen(),
'/second': (context) => SecondScreen(),
},
));
}
class FirstScreen extends StatefulWidget {
@override
_FirstScreenState createState() => _FirstScreenState();
}
class _FirstScreenState extends State<FirstScreen> {
int submit = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Demo"),
),
body: new Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Row(
children: <Widget>[
new RaisedButton(
padding: const EdgeInsets.all(10.0),
child: const Text('Next Question'),
color: submit == 0 ? Color(0xFFE9E9E9) : Colors.grey,
elevation: 0.0,
onPressed: () {
submit == 0 ? null : Navigator.push(
context,
MaterialPageRoute(builder: (context) => SecondScreen()),
);
}
),
new RaisedButton(
padding: const EdgeInsets.all(10.0),
child: const Text('Submit Answer'),
color: Color(0xFFE08284),
elevation: 0.0,
onPressed: () {
setState(() {
submit = 1;
});
},
),
],
),
submit == 1 ? new Container(
child: new Text("hello World"),
) : new Container()
],
)
);
}
}
class SecondScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Second Screen"),
),
body: Center(
child: RaisedButton(
onPressed: () {
Navigator.pop(context);
},
child: Text('Go back!'),
),
),
);
}
}
关于dart - Flutter 在 RaisedButton 上设置状态 onPressed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52028112/
我有以下 flatlist 渲染方法,在点击列表项时,它将调用 this._onPress 方法: render() { return (
我正在使用很棒的组件来自Native Base 。 import React, { Component } from 'react' import {View, Picker, Text, Butto
我正在做一个更大的项目,但不知道为什么这个小部分让我花了将近一整天的时间。 import 'package:flutter/material.dart'; void main() { runApp
我刚刚将我的 react-native 项目移植到 typescript 并且有一个关于函数作为 Prop 的问题 我通过: this.props.navigation.navigate("Card
我已经实现了教程中的 React Navigation 示例 https://reactnavigation.org/docs/intro/而且效果很好。 navigate('Chat')} t
我从RaisedButton创建了一个扩展类。传递onPressed参数时,该类拒绝说驱动器为空。 类 class VecRaisedButton extends RaisedButton { V
我正在制作简单的自定义文本按钮 SizedBox( height: 40, child: Material( color: Colors.transparent
onPressed 错误尝试传递 onPressed 函数但出现错误。 错误 - 无法将参数类型“Function”分配给参数类型“void Function()?”。 class CircleBut
onPressed 错误尝试传递 onPressed 函数但出现错误。 错误 - 无法将参数类型“Function”分配给参数类型“void Function()?”。 class CircleBut
RESET 我在上面看到的代码中使用了可触摸的不透明度。当我更改状态 working_pressure 但不按下按钮时,控制台会记录状态。问题是按下按钮时,根本没有记录任何内容。 我的最
我的应用程序中有这个聊天屏幕,我在旁边的 button 及其 onPress() 的帮助下发送消息, 代码如下: import React, { Component } from "react"; i
正在学习native React并学习更多关于javascript的知识,所以我仍然不明白关于它的行为的很多事情。我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件
我正在尝试为我使用 Flutter 创建的游戏实现 onPressed 函数。如果我使用 RaisedButton 然后 onPressed 工作,但因为我想要一个图像然后我必须使用 Material
我需要在下面的图标上插入 onpressed() 函数(导航器推送到其他页面): Column buildButtonColumn(IconData icon, String label) {
我有这个容器: new Container( width: 500.0, padding: new EdgeInsets.fromLTRB(20.0, 40.0, 20.0, 40
我正在尝试使用 onPressed 切换到 Flutter 项目中的不同屏幕,但它没有生成任何结果,不确定是什么原因。 这是主屏幕页面:
我的平面列表中有一些按钮,如下所示 const renderItem = ({ item }) => ; const Item = ({ name, slug }) => { return
我在 React Native 上处理 onPress 事件。第一次,我写了那个代码: =this.props.minimum) ? this.props.onDecrement
我如何实现这种效果?单击日期后,我想扩展我的 AppBar。 最佳答案 最简单的方法是设置一个变量,然后改变 bottom 的高度。小部件。 Scaffold( appBar: AppBa
我已经使用 Flutter 大约 8 周了。 太棒了,毫无疑问。 然而,自从我开始以来,一直有一些问题困扰着我,那就是为什么有些小部件有 onTap方法而其他人有 onPressed ?谷歌无法给我任
我是一名优秀的程序员,十分优秀!