質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

0回答

1153閲覧

Flutter画像のカルーセル

nana_neko

総合スコア2

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2021/08/18 19:34

編集2021/08/19 09:00

https://zuma-lab.com/posts/flutter-nested-list
こちらのサイトを参考にカルーセルデザインの実装をしようとしています。
こちらで表示ラベルには WordPair.random().asPascalCase でランダムな英単語を生成して表示しています。
今回は表示ラベルを例えば「犬」「猫」「その他」などと指定したいのですがどのように実装すればいいかで詰まっています。
よろしくお願いします

Dart

1import 'package:flutter/material.dart'; 2import 'package:english_words/english_words.dart'; 3 4class NestedListScreen extends StatelessWidget { 5 6 Widget build(BuildContext context) { 7 return MaterialApp( 8 theme: ThemeData(primaryColor: Colors.white), 9 home: NestedList(), 10 ); 11 } 12} 13 14class NestedList extends StatelessWidget { 15 16 Widget build(BuildContext context) { 17 return Scaffold( 18 appBar: AppBar( 19 title: const Text('Nested List'), 20 ), 21 body: ListView.builder( 22 padding: const EdgeInsets.symmetric(vertical: 16), 23 itemBuilder: _buildVerticalItem, 24 ), 25 ); 26 } 27 28 Widget _buildVerticalItem(BuildContext context, int verticalIndex) { 29 return Padding( 30 padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16), 31 child: SizedBox( 32 height: 320, 33 child: Column( 34 mainAxisAlignment: MainAxisAlignment.spaceEvenly, 35 crossAxisAlignment: CrossAxisAlignment.start, 36 children: [ 37 Text( 38 WordPair.random().asPascalCase, 39 style: const TextStyle(fontSize: 24, fontWeight: FontWeight.bold), 40 ), 41 Text( 42 WordPair.random().asPascalCase, 43 style: const TextStyle(fontSize: 16, color: Colors.grey), 44 ), 45 _buildHorizontalItem(context, verticalIndex), 46 ], 47 ), 48 ), 49 ); 50 } 51 52 Widget _buildHorizontalItem(BuildContext context, int verticalIndex) { 53 return SizedBox( 54 height: 240, 55 child: PageView.builder( 56 controller: PageController(viewportFraction: 0.8), 57 itemBuilder: (context, horizontalIndex) => 58 _buildHorizontalView(context, verticalIndex, horizontalIndex), 59 ), 60 ); 61 } 62 63 Widget _buildHorizontalView( 64 BuildContext context, int verticalIndex, int horizontalIndex) { 65 final imageUrl = 66 'https://source.unsplash.com/random/275x240?sig=$verticalIndex$horizontalIndex'; 67 return Padding( 68 padding: const EdgeInsets.symmetric(horizontal: 8), 69 child: Card( 70 child: Image.network(imageUrl), 71 ), 72 ); 73 } 74}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問