dart - Flutter 代码,在按下按钮时添加或显示小部件或在按下方法时设置状态

标签 dart flutter

<分区>

我是 flutter 的新手,想在按下按钮后显示文本小部件。

   import 'package:flutter/material.dart';

    class dellecturer extends StatefulWidget {
      @override
      _dellecturerState createState() => _dellecturerState();
    }

    class _dellecturerState extends State<dellecturer> {
      @override
      Widget build(BuildContext context) {
        return Card(
          color: Colors.grey.shade300,
          margin: EdgeInsets.all(10.0),
        child: Container(
          margin: EdgeInsets.all(20),
          child: ListView(
            children: <Widget>[
             new Container(
               margin: EdgeInsets.only(top:13,bottom: 25),
               alignment: Alignment.topCenter,
                 child:Text("DELETE BY LECTURER ID",style: TextStyle(color: Colors.redAccent,fontWeight: FontWeight.bold,fontSize: 20.0),),
             ),
             new TextField(
                decoration:InputDecoration(border: OutlineInputBorder(borderSide: BorderSide(style: BorderStyle.solid),),labelText: "LECTURER ID",hintText: "Enter lecturer ID",prefixIcon: Icon(Icons.person)),
              ),
              Padding(padding: EdgeInsets.only(top:20),),
             new RaisedButton(child: Text("OK",style: TextStyle(fontWeight: FontWeight.bold,color: Colors.white,fontSize: 15),),color: Colors.red,onPressed: (){Form(child: Search());},),//onclick search
            ],
          ),


        ),
        ); 

      }
    Widget Search(){  //should display
      setState(() {
      return Scaffold(
        body: Container(
        child: ListView(
          children: <Widget>[
            new Text("ID :1234",style: TextStyle(color: Colors.redAccent),),
             new Text("ID :1234",style: TextStyle(color: Colors.redAccent),),
              new Text("ID :1234",style: TextStyle(color: Colors.redAccent),),
          ],
        ),
        )
      );
      });

    }
    }

最佳答案

我不明白你在代码中到底想做什么,但是如果你需要在按下按钮后显示一个文本小部件,你可以简单地定义一个 bool 变量来检测按钮点击,如下所示:

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(
      home: MyApp(),
    ));

class MyApp extends StatefulWidget {
  @override
  MyAppState createState() {
    return new MyAppState();
  }
}

class MyAppState extends State<MyApp> {
  bool pressed = false;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        children: <Widget>[
          pressed ? Text(" text is here ") : SizedBox(),
          RaisedButton(
            child: Text("show text"),
            onPressed: () {
              setState(() {
                pressed = true;
              });
            },
          )
        ],
      ),
    );
  }
}

关于dart - Flutter 代码,在按下按钮时添加或显示小部件或在按下方法时设置状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53799794/

相关文章:

dart - 遍历Dart中的类列表

dart - 这是Dart编译器的默认设置吗?

dart - 使用流进行 PropertyChanges

flutter - @ ('at sign' ) 符号在 dart 中意味着什么?

post - 如何在 register api flutter 中使用 bearer token

Flutter:如何在应用栏小部件中包含切换按钮?

java - 如何从 Swift 原生代码到 Flutter 的 'put' 参数

firebase - 身份验证 Firebase 与 Provider flutter

checkbox - flutter 中共享首选项和复选框的问题

dart - 如何修复 "pub get failed(1)"