2

iOS ユーザーが List をスクロールして通貨の価格を確認するために CupertinoWidget を使用しています。ただし、スクロールが発生すると、onSelectedItemChangedはリストのすべての値に対してコールバックを API に送信します。ドキュメントを読みましたが、何をすべきかわかりません。例があれば幸いです。

ドキュメントでは、CupertinoPicker > onSelectedItemChanged プロパティとして言及されています

これは、スクロール中および弾道フリング中に呼び出すことができます。スクロールが安定したときにのみ値を取得するには、NotificationListener を使用し、ScrollEndNotification をリッスンして、その FixedExtentMetrics を読み取ります。

 NotificationListener cupertinoPickerList() {
    List<Text> textWidgetList = [];
    for (String curreny in currenciesList) {
      textWidgetList.add(
        Text(
          curreny,
          style: TextStyle(
            color: Colors.white,
          ),
        ),
      );
    }
    return NotificationListener<ScrollNotification>(
      onNotification: (scrollNotification) {
        if (scrollNotification is ScrollEndNotification) {
          return true;
        } else {
          return false;
        }
      },
      child: CupertinoPicker(
        itemExtent: 30,
        scrollController: FixedExtentScrollController(initialItem: 19),
        onSelectedItemChanged: (selectedIndex) {
          selectedCurreny = currenciesList[selectedIndex];
          updateUI(selectedCurreny);
          print(selectedCurreny);
        },
        children: textWidgetList,
      ),
    );
  }
4

2 に答える 2