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

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

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

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

Dart

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

Q&A

解決済

1回答

235閲覧

ListViewのCardの下のTextの内容をいい感じに変えたい

j06110611

総合スコア54

Flutter

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

Dart

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

0グッド

0クリップ

投稿2023/05/27 01:43

編集2023/05/31 04:06

実現したいこと

ListViewのCardの下のTextの内容をいい感じに変えたい

前提

日記アプリを作っています。日記を作成した時間をSharedPreferencesに保存し、一応それをListで読み込んでいます。

発生している問題

例えば「50分」が012:50に作成、「51分」を12:51に作成した場合、今のままではTextがどっちも12:51になってしまいます。
イメージ説明
そうではなく、「50分」の下のTextには12:50、「51分」の下のTextは12:51分にしたいのです。
イメージ説明

該当のソースコード

Main.Dart

Dart

1ListView.builder( 2 scrollDirection: Axis.vertical, 3 shrinkWrap: true, 4 itemCount: items.length, 5 itemBuilder: (BuildContext context, int index) { 6 final item = items[index]; 7 return Column( 8 children: <Widget>[ 9 Card( 10 child: ListTile( 11 title: Text(item), 12 ), 13 ), 14 15 Padding( 16 padding: EdgeInsets.only(right: 8), 17 child: Align( 18 alignment: Alignment.centerRight, 19 child: FutureBuilder( 20 future: rm.getFutureValue(), 21 builder: (BuildContext context, AsyncSnapshot<List> snapshot) { 22 23 //通信中はスピナーを表示 24 if (snapshot.connectionState != ConnectionState.done) { 25 return CircularProgressIndicator(); 26 } 27 28 //エラー発生時はエラーメッセージを表示 29 if (snapshot.hasError) { 30 return Text(snapshot.error.toString()); 31 } 32 33 if (snapshot.hasData) { 34 return Text(snapshot.data?.elementAt(items.length - 1)); //←現状(修正) 35 } else { 36 return Text('データが存在しません'); 37 } 38 } 39 ), 40 ), 41 )], 42 ); 43 } 44 ),

試したこと

同じようなことをやっている記事がないかと調べましたが、検索の仕方が悪いのかやりたいこととあっているものが見つかりませんでした。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ソースも一部だけだし、クラスの構造等も不明なので想像だけど。

return Text(snapshot.data?.elementAt(0)); //←現状ではなくreturn Text(snapshot.data?.elementAt(index));ではないのかな。

rm.getFutureValue()で取り出すのが、itemsに登録されている文字列?に対応する時刻を表すものを取り出すメソッドと仮定するけど。

投稿2023/05/27 07:26

ta.fu

総合スコア1667

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

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

j06110611

2023/05/31 04:10

回答ありがとうございます。 そこを修正しましたが、結果は変わらなかったです・・・
ta.fu

2023/05/31 05:57

ソースが一部しか提示されていないので、前提条件、例えばどのように保存されているか、どの様にデータを取得しているかなどの情報が出されていないと、的確な答えは難しいです。 次に、コメントにある「そこを修正しましたが、結果は変わらなかったです・・・」というのは、elementAt(0)という実装だったのを、elementAt(index)にした方が良いという私の提案に対して、その対応をしても想定している動作にならなかったということですか。 あと編集済みの実装ではelementAt(items.length - 1)となっていますが、これではやはり同じ情報しか取得できませんよ。 デバッガの情報を見る限り、12:50と12:51という情報は格納されているので「elementAt(index)」で良いように思えるのですが。
j06110611

2023/05/31 06:42

知識不足で変にいじってました。 おっしゃる通り、elementAt(index)にしたらできました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問