Closed RightonSK closed 1 year ago
swipe cards パッケージについて
List
SwipeItemのプロパティは?
単語帳再生ページはtop pageから(action barのボタンをトリガーに)遷移される。 遷移前に、flashcard play pageのstateにflashcardのオブジェクトを渡す。
遷移前init() toppageからflashcard pageに遷移する場合、 遷移前にflashcard pageのnotifier(controller)にflashcardオブジェクトを渡して、そのflashcard オブジェクトから必要な情報をrepositoryから持ってきてstateに格納している(init処理)。
stateに格納したデータ: 渡されたflashcard そのflashcardのwordのリスト(idを用いてfetch) 単語をflipするのに必要な情報を持っているMap型配列
providerってグローバルで定義してるから、アプリ立ち上げ時に初期化されるよね? 答えはNO。初めてreadやwatchされた段階で初期化される。
遷移後init() toppageからflashcard pageに遷移する場合、 flashacard pageにflashcardを渡す。
watch時にfamilyを使ってflashcardをproviderに渡す。 providerのコンストラクタの中でinit処理をする。
bodyのGridViewにそもそも単語が空だったら
family修飾子について詳しく調べる
freezed生成時にエラーが起きる。
flashcard play pageについて
遷移元は、top pageのaction barのプレイボタン。 遷移した後にデータは読み込む。
app barとかはなし。 薄グレーの背面に白の単語カードだけがある状態。 右にスワイプしたら次の単語。次の単語がなければ単語再生モードを終了して、top pageに戻る。 左にスワイプしたら前の単語に戻れる。 タップしたら、単語の意味を見れる。
swipe cardのパッケージの使い方が分からないからローカルで回してから動きとかを見るか
PageControllerの引数「viewportFraction」は、ページが画面の何割の大きさになるかを指定します。
safe areaの左上にstack widgetで×ボタンを置いて、それが押されたら、top pageに戻る。 今までのpageをtreeから消すpushをする。
child: SizedBox( ← page view widgetの上に置くことによってpageviewの範囲を決められる。
height: 300,
child: PageView(
controller: _pageController,
children: [
Container( ← Page viewの大きさまで引き伸ばされるwidget
alignment: Alignment.center,
child: SizedBox( cardの大きさを決めるためのsizedbox
width: 100,
height: 100,
child: Card(color: Colors.red),
),
),
Card(color: Colors.green),
Card(color: Colors.pink),
],
),
),
Navigatorのpop untilメソッドで黒い画面になるエラー
ナビゲーションツリーをうまいこと操作できていない。
アプリ立ち上げ時に最初の画面に行く際にpushNamedで遷移していないから? homeに入れてるだけなので、Navigationメソッドは使わないんだけど、どうすれば良いのか?
isActionModeをNavigatorする際は、offにしたい。 ↓ page fileにメソッドを作って、Navigatorを渡す? クラスを作ってNavigatorを渡す。 そのpageのnotifier(controller)にcontextを渡して、isActionModeをオフにした後に遷移するようにする?
isActionModeをfalseにしたい場合: 画面遷移を行う場合。
2/24 今日のタスク:
今夜のタスク:
top pageのbodyにnotifierとstateを渡してるけど、これWidgetRefを入れた方が簡潔なのでは?
2/24今夜のタスク; 単語帳再生機能を完成させる。
そのページのカードを管理する方法: 一番上でtheme widetで囲み、ページ全体をカードのテーマを管理。 単純にカードの中で指定。 cardを作るクラスを作成。
単語帳再生ページ
単語帳終了ロジックについて: 最初単語から最後までの移動のoffsetをwatchして、超えたら終了。 最後にcontainerのページとかを追加して、そこに移動するのをonPagechangedなどでwatchして、単語帳再生モードを終了させる。
view側で一回だけnotifierに動いてもらinit()処理がわからん。
参考アプリ: tinder
tinder参考パッケージ↓ https://pub.dev/packages/swipe_cards