0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Flutterでボタンを押した時に画面遷移させる

0
Last updated at Posted at 2025-11-19

はじめに

こんにちは、エンジニアのkeitaMaxです。

前回はRouteを作成したので今回は画面遷移を行なってみます。

前回の記事

ボタンの表示

前回作成したtop.dartファイルを守成して、Secondへ遷移というボタンをTop Screenと書いてあるテキストの下に表示して見ます。

Columnというものを使用して、

mainAxisAlignment: MainAxisAlignment.center, // 縦の配置
crossAxisAlignment: CrossAxisAlignment.center, // 横の配置

とすると上下真ん中で縦に並べることができます。

ボタンはTextButtonとすると影のないボタンが表示できます。

import 'package:flutter/material.dart';

class TopScreen extends StatelessWidget {
  const TopScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('TopScreen')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: <Widget>[
            const Text('Top Screen'),
            TextButton(onPressed: null, child: Text('Secondへ遷移')),
          ],
        ),
      ),
    );
  }
}

これでflutter runをしてブラウザで見て見ます。

スクリーンショット 2025-11-19 16.46.09.png

このように、Secondへ遷移というボタンをTop Screenの下に表示することができました。

画面遷移を作成

ボタンを押したら画面遷移するという処理を書いていきます。

TextButton(onPressed: null, child: Text('Secondへ遷移')),

onPressed部分に処理を書いていきます。

go routerで画面遷移させたいときはcontext.go('/second')のように書きます。
今回は'/second'に画面遷移させたいのでこのように記載しました。

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';

class TopScreen extends StatelessWidget {
  const TopScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('TopScreen')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: <Widget>[
            const Text('Top Screen'),
            TextButton(
              onPressed: () => context.go('/second'), // ← 修正
              child: const Text('Secondへ遷移'),
            ),
          ],
        ),
      ),
    );
  }
}

これで起動してみて、Secondへ遷移ボタンを押してみると無事にSecond Screenと書いてあるページに遷移できることが確認できるかと思います。

おわりに

この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。

最後まで読んでいただきありがとうございました!

参考

次の記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?