Flutter / Dart: Как сделать вкладки только один раз? - PullRequest
0 голосов
/ 14 декабря 2018

В настоящее время у меня есть три вкладки с нижней навигационной панелью, однако я только что заметил, что она фактически отображает каждую смену вкладок.Как я могу это исправить, чтобы он рендерился только один раз, и использовал этот рендеринг до обновления вручную (что будет реализовано позже).

import 'package:flutter/material.dart';

import '../styles.dart';

import 'one.dart';
import 'two.dart';
import 'three.dart';

class Home extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _HomeState();
}

class _HomeState extends State<Home> {

  final List<Widget> _children = [ One(), Two(), Three(), ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.blue,
        title: Text( 'RefLog', style: Styles.headerLarge ),
        actions: <Widget>[
          new IconButton(
            icon: Icon(Icons.list),
            onPressed: () {},
          )
        ],
      ),
      body: DefaultTabController(
        length: 3,
        child: Scaffold(
          body: TabBarView(
            children: _children,
          ),
          bottomNavigationBar: TabBar(
            tabs: [
              Tab( text: 'One', icon: Icon(Icons.import_contacts, size: 20.0) ),
              Tab( text: 'Two', icon: Icon(Icons.restaurant, size: 20.0) ),
              Tab( text: 'Three', icon: Icon(Icons.record_voice_over, size: 20.0) ),
            ],
            labelStyle: TextStyle(fontSize: 12.0),
            labelColor: Colors.white,
            unselectedLabelColor: Colors.white30,
            indicatorSize: TabBarIndicatorSize.label,
            indicatorColor: Colors.white,
          ),
          backgroundColor: Colors.blue,
        ),
      ),
    );
  }
}
...