|

Flutterの練習9−2:ListView(その2)

実際、ListViewを使うときは、Listから展開することが多いと思います。そういう時は、ListView.builderを使います。できたのはこちら

import 'package:flutter/material.dart';

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

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

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

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

class _MyHomePageState extends State {
  String _label = 'Nothing Clicked!';

  void _setLabel(int index) {
    setState(() {
      _label = 'Clicked item $index';
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text("ListView 2"),
      ),
      body: Row(
        children: [
          SizedBox(
            width: 150, // リストの幅
            child: Scrollbar(
              thumbVisibility: true, // スクロールバーを常に表示
              child: ListView.builder(
                itemCount: 100,
                itemBuilder: (context, index) {
                  return ListTile(
                    title: Text('item $index'),
                    onTap: () => _setLabel(index),
                  );
                },
              ),
            ),
          ),
          Expanded(
            child: Center(
              child: Text(
                _label,
                style: TextStyle(fontSize: 18),
              ),
            ),
          ),
        ],
      ),
    );
  }
}

類似投稿

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.