teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

コードの冗長部分の削除

2020/10/27 03:27

投稿

toshi_ki
toshi_ki

スコア17

title CHANGED
File without changes
body CHANGED
@@ -88,18 +88,13 @@
88
88
 
89
89
  ```ChangingValue
90
90
  class QuestionDetailList extends StatefulWidget {
91
- final String questionId;
92
- QuestionDetailList(this.questionId);
93
91
  @override
94
92
  _QuestionDetailListState createState() => _QuestionDetailListState();
95
93
  }
96
94
 
97
95
  class _QuestionDetailListState extends State<QuestionDetailList> {
98
- var questionId;
99
-
100
96
  @override
101
97
  Widget build(BuildContext context) {
102
- final _size = MediaQuery.of(context).size;
103
98
  Provider.of<AppBarState>(context, listen: false).setTitle("Changed Title");
104
99
  return Container();
105
100
  }

4

説明文の明瞭化

2020/10/27 03:27

投稿

toshi_ki
toshi_ki

スコア17

title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,19 @@
1
- 自作の`ChangeNortifier`クラスを`ChangeNotifierProvider`でcreateてクラス内の値をWidgetで使用してます。
1
+ # 実現こと
2
2
 
3
- さらに、クラス内で`setTitle`メソッドを定義していて、メソッド実行時に`notifyListners()`を呼び出使用してい箇所に通知するようにします
3
+ AppBarのタイトルやボタンを`String`型や`VoidCallback`として`Provider`に保持し、下位のWidgetツリーから変更できるようにしい。
4
4
 
5
- ですが、通知ているのにもかかわらず、UIが更新されません。
5
+ # 試たこと
6
6
 
7
- クラス内の`setTitle`が呼び出されたあと、HotReloadするとが変更されます。
7
+ 自作の`ChangeNortifier`を継承した`AppBarState`クラス`ChangeNotifierProvider`でcreateして`AppBarState`内のをWidgetで使用しています。
8
8
 
9
+ さらに、`AppBarState`内で`setTitle`メソッドを定義していて、メソッド実行時、`title`の値を変更して`notifyListners()`で通知するようにしています。
10
+
11
+ ですが、`setTitle`メソッド実行時にUIが更新されません。
12
+
13
+
14
+ `setTitle`が呼び出されたあと、HotReloadすると値が変更されます。
15
+
16
+
9
17
  `setTitle`が呼び出された時点で変更を反映させるためにはどうしたらいいのでしょうか。
10
18
 
11
19
  コードを全て載せると長くなってしまうので、関連する箇所のみコードを載せておきます。

3

2020/10/27 03:24

投稿

toshi_ki
toshi_ki

スコア17

title CHANGED
@@ -1,1 +1,1 @@
1
- ChangeNotifierProviderでnotifyListeners()した時にUIが更新されない【Flutter】
1
+ ChangeNotifierProviderでnotifyListenersで通知した時にUIが更新されない【Flutter】
body CHANGED
File without changes

2

タイトルの変更

2020/10/27 00:29

投稿

toshi_ki
toshi_ki

スコア17

title CHANGED
@@ -1,1 +1,1 @@
1
- ChangeNotifierProviderでnotifyListeners()した時にUIが更新されない
1
+ ChangeNotifierProviderでnotifyListeners()した時にUIが更新されない【Flutter】
body CHANGED
File without changes

1

説明の追加

2020/10/25 04:34

投稿

toshi_ki
toshi_ki

スコア17

title CHANGED
File without changes
body CHANGED
@@ -4,8 +4,10 @@
4
4
 
5
5
  ですが、通知しているのにもかかわらず、UIが更新されません。
6
6
 
7
- どこ間違っていのでしょうか
7
+ クラス内の`setTitle`呼び出されたあと、HotReloadすと値が変更されます
8
8
 
9
+ `setTitle`が呼び出された時点で変更を反映させるためにはどうしたらいいのでしょうか。
10
+
9
11
  コードを全て載せると長くなってしまうので、関連する箇所のみコードを載せておきます。
10
12
 
11
13
  気になるところでもいいので何か分かる方がいましたら、お力添えしていただけるとありがたいです。