首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于颤振的TextSwitcher实现

基于颤振的TextSwitcher实现
EN

Stack Overflow用户
提问于 2017-05-25 18:56:07
回答 1查看 361关注 0票数 1

我还没有在颤振上找到任何TextSwitcher。在Android上,TextSwitcher会切换动画中添加了淡出/淡出的文本。在颤振上有实现吗?我需要白手起家吗?如果是这样,您将如何实现它?

这里有一个参考资料:https://developer.android.com/reference/android/widget/TextSwitcher.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-25 19:42:52

Flutter的PageView类提供了与Android TextSwitcher大致相同的功能。

代码语言:javascript
复制
import 'dart:collection';
import 'package:flutter/scheduler.dart';
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_database/firebase_database.dart';
import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/foundation.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.orange,
      ),
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  State createState() => new MyHomePageState();
}

class MyHomePageState extends State<MyHomePage> {

  PageController _controller = new PageController();

  static const List<String> _kStrings = const <String>[
    'What is your name?',
    'I am a developer.',
    'What are you doing?',
    'Etc. etc...',
  ];

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('Text Switcher Demo'),
      ),
      floatingActionButton: new FloatingActionButton(
        child: new Icon(Icons.navigate_next),
        onPressed: () {
          Duration duration = const Duration(milliseconds: 300);
          Curve curve = Curves.easeOut;
          if (_controller.page == _kStrings.length - 1) {
            _controller.animateToPage(0, duration: duration, curve: curve);
          } else {
            _controller.nextPage(duration: duration, curve: curve);
          }
        },
      ),
      body: new PageView(
        controller: _controller,
        children: _kStrings.map((text) {
          return new Center(
            child: new Text(
              text,
              textAlign: TextAlign.center,
              style: Theme.of(context).textTheme.display2
            ),
          );
        }).toList(),
      ),
    );
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44187895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档