timelines_page.dart 1.51 KB
import 'package:flutter/material.dart';
import 'package:one_poem/timeline/provider/timeline_page_provider.dart';
import 'package:one_poem/widgets/my_app_bar.dart';
import 'package:provider/provider.dart';

import 'timeline_list_page.dart';

class TimelinesPage extends StatefulWidget {
  const TimelinesPage({Key? key}) : super(key: key);

  @override
  _TimelinesPageState createState() => _TimelinesPageState();
}

class _TimelinesPageState extends State<TimelinesPage>
    with SingleTickerProviderStateMixin, AutomaticKeepAliveClientMixin {
  final PageController _pageController = PageController();

  final GlobalKey _bodyKey = GlobalKey();

  TimelinePageProvider provider = TimelinePageProvider();

  @override
  void initState() {
    super.initState();
  }

  @override
  void dispose() {
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    super.build(context);
    return ChangeNotifierProvider<TimelinePageProvider>(
      create: (_) => provider,
      child: Scaffold(
        appBar: const MyAppBar(),
        body: Column(
          key: _bodyKey,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Expanded(
              child: PageView.builder(
                  key: const Key('pageView'),
                  controller: _pageController,
                  itemBuilder: (_, int index) =>
                      TimelineListPage(index: index)),
            )
          ],
        ),
      ),
    );
  }

  @override
  bool get wantKeepAlive => true;
}