떨림 기반 학습은 점프와 데이터 페이지를 반환 18-19

크리에이티브 커먼즈 라이센스 저작권 : 저작자는 다른 사람들이 종이를 기반으로 만들 수 있도록하고 (동일한 라이센스 원래 라이센스 계약에 따라 용지를 배포해야합니다 크리에이티브 커먼즈를 )

        앞 페이지의 학습 점프 후 우리는 (즉, 상위 페이지입니다) 이전 페이지로 돌아 왔을 때, 결과 페이지를 반환합니다. 이 장면이 자주 사용되는, 우리가 하위 페이지가 옵션을 선택한 다음 다시 상위 페이지에 결과를 선택하여 이동합니다.

데모 기능 : 수 있도록 여기에 예를 들어,이 시간은 우리가 홈에서 작은 선택을 보여, 방을 입력 한 후, 당신의 마음에 드는 여동생을 찾아 여동생이 우리에게 마이크로 편지를 준 여동생을 찾기 위해이있다 자매 마이크로 편지.

지식 포인트 :

비동기 요청을 기다립니다

비동기 요청 다트 방법 기다린 ES6는 같은 직접 비동기 ... AWAIT이 달성 될 수있다. 예를 들어, 다음과 같은 방법은 여동생을 찾고 한 후, 이번에는 비동기주의, 점프. 결과가 돌아 오기를 기다리고 후, 우리는 컨텐츠를 보여줄 것이다. 특정 코드는 다음과 같이 :

//定义一个跳转到目标界面的“内部”方法,使用异步请求的方式(等数据传递回来之后,再显示传递的数据)
  _navigateToXiaoJieJie(BuildContext context) async{
    final result=await Navigator.push(context, MaterialPageRoute(//等待数据传回来
      builder: (context)=>XiaoJieJie()
    ));
    Scaffold.of(context).showSnackBar(SnackBar(content:Text('$result')));//显示数据
  }

두, 스낵바 사용

SnackBar사용자 작업 후, 정보, 유사의 프롬프트 제어 표시 Tost, 그것은 자동으로 숨겨됩니다. SnackBar그것은 기반으로 접근 방식이 표시된다.ScaffoldshowSnackBar

Scaffold.of(context).showSnackBar(SnackBar(content:Text('$result')));

방식 데이터 셋째, 반환

당신이 그것을 반환 할 때 사실, 반환 데이터는 두 번째 인수로 너무 오래 특히 쉽습니다.

Navigator.pop(context,'我是一号小姐姐,微信是:jlcdlkcjklc');//第二个参数用于返回数据

 다음과 같이 네는, 데모 코드는

import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      title: '页面跳转返回数据',
      home: FristPage(),
    )
  );
}
//首界面
class FristPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar:AppBar(title: Text('找小姐姐要微信'),),
      body: Center(
        child: RouteButton(),
      ),
    );
  }
}
//定义一个跳转目标界面的按钮类
class RouteButton extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return RaisedButton(
        onPressed: (){
          _navigateToXiaoJieJie(context);
        },
        child: Text('去找小姐姐'),
    );
  }
  //定义一个跳转到目标界面的“内部”方法,使用异步请求的方式(等数据传递回来之后,再显示传递的数据)
  _navigateToXiaoJieJie(BuildContext context) async{
    final result=await Navigator.push(context, MaterialPageRoute(//等待数据传回来
      builder: (context)=>XiaoJieJie()
    ));
    Scaffold.of(context).showSnackBar(SnackBar(content:Text('$result')));//显示数据
  }
}

//目标界面
class XiaoJieJie extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('小姐姐界面'),),
      body: Center(
        child: Column(
          children: <Widget>[
            RaisedButton(
              child: Text('一号小姐姐'),
              onPressed: (){
                Navigator.pop(context,'我是一号小姐姐,微信是:jlcdlkcjklc');//第二个参数用于返回数据
              },
            ),
             RaisedButton(
              child: Text('二号小姐姐'),
              onPressed: (){
                Navigator.pop(context,'我是二号小姐姐,微信是:jjdkshfjds');
              },
            ),
          ],
        ),
      ),
    );
  }
}

다섯째, 운영 결과

 

추천

출처blog.csdn.net/dpl12/article/details/93775956