2021/2/26 Flutter : PageViewウィジェットについて

 

import 'package:flutter/material.dart';

void main(){
  runApp(MaterialApp(home:MyApp()));
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {

  final PageController _pageCtr=PageController();

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

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

  @override
  Widget build(BuildContext context) {

    
    return Scaffold(
      appBar:AppBar(title:Text("PageView test",),),
      body:PageView(
        controller:_pageCtr,
        pageSnapping:true,
        scrollDirection: Axis.vertical, //縦向きスクロール。
        children:[
          FirstPage(),
          SecondPage(),
          ThirdPage(),
        ],

      ),
    );
  }
}

class FirstPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(color:Colors.pink[100],);
  }
}

class SecondPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(color:Colors.deepOrange,);
  }
}

class ThirdPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(color:Colors.blueAccent,);
  }
}

 


 

import 'package:flutter/material.dart';

List<Widget> list1=[
  FirstPage(),
  SecondPage(),
  ThirdPage(),
];

void main(){
  runApp(MaterialApp(home:MyApp()));
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body:PageView.builder(
        itemBuilder:(context,index){
          return list1[index];
        },
        itemCount:list1.length,
      ),
    );
  }
}

class FirstPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(color:Colors.pink[100],);
  }
}

class SecondPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(color:Colors.deepOrange,);
  }
}

class ThirdPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(color:Colors.blueAccent,);
  }
}

 

 

コメントを残す

メールアドレスが公開されることはありません。