微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

颤振更改选项卡中显示的内容

如何解决颤振更改选项卡中显示的内容

我目前在为所选的每个标签显示不同的小部件时遇到问题。

点击另一个选项卡时,是否可以通过任何方式更改文本或其他内容

我尝试在开关内使用tabNames [index]和index,并且为每个页面创建了不同的大小写,但是它不起作用。我要在每个标签显示多个小部件,具体取决于我点击哪个标签

import 'package:Flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Navigation Example',home: new MyHomePage(),);
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

const List<String> tabNames = const<String>[
  'foo','bar','baz','quox','quuz','corge','grault','garply','waldo'
];

class _MyHomePageState extends State<MyHomePage> {

  int _screen = 0;

  @override
  Widget build(BuildContext context) {
    return new DefaultTabController(
      length: tabNames.length,child: new Scaffold(
        appBar: new AppBar(
          title: new Text('Navigation example'),),body: new TabBarView(
          children: new List<Widget>.generate(tabNames.length,(int index) {
            switch (_screen) {
              case 0: return new Center(
                child: new Text('First screen,${tabNames[index]}'),);
              case 1: return new Center(
                child: new Text('Second screen'),);
            }
          }),bottomNavigationBar: new Column(
          mainAxisSize: MainAxisSize.min,crossAxisAlignment: CrossAxisAlignment.stretch,children: [
            new AnimatedCrossFade(
              firstChild: new Material(
                color: Theme
                  .of(context)
                  .primaryColor,child: new TabBar(
                  isScrollable: true,tabs: new List.generate(tabNames.length,(index) {
                    return new Tab(text: tabNames[index].toupperCase());
                  }),secondChild: new Container(),crossFadeState: _screen == 0
                              ? CrossFadeState.showFirst
                              : CrossFadeState.showSecond,duration: const Duration(milliseconds: 300),new BottomNavigationBar(
              currentIndex: _screen,onTap: (int index) {
                setState(() {
                  _screen = index;
                });
              },items: [
                new BottomNavigationBarItem(
                  icon: new Icon(Icons.airplanemode_active),title: new Text('Airplane'),new BottomNavigationBarItem(
                  icon: new Icon(Icons.motorcycle),title: new Text('Motorcycle'),],);
  }
}

解决方法

我认为您不适合将小部件列表传递给TabBarView的方式。不要使用List.generate:而是尝试像这样包装小部件:

pd.read_html()

选项卡控制器可动态处理页面更改,而无需放置开关盒来选择屏幕。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。