你如何在 Flutter 中延遲影片。
下面提供了容器不透明度的影片。在這種情況下,我使用了 bool _reduced 來根據該 bool 變數更改影片的速度。但我不想改變速度,我只想簡單地將影片延遲 500 毫秒。無論如何,我都看不到輕松制作影片延遲。
AnimatedOpacity(
duration: _reduced ? Duration(milliseconds: 120) : Duration(milliseconds: 800),
opacity: _reduced ? 0 : 1,
child: Text('hi di hi),
}
這顯然比我上面展示的更多,但基本上我想做這樣的事情:
AnimatedOpacity(
duration: _reduced ? Duration(milliseconds: 120) : Duration(milliseconds: 120, delay: 500),
opacity: _reduced ? 0 : 1,
child: Text('hi di hi),
}
uj5u.com熱心網友回復:
為您的有狀態小部件定義延遲變數: Duration delay =...;
然后當您更改不透明度的條件變為真時(例如在onTap某些按鈕的屬性內),創建一個setState在delayms之后呼叫的計時器:
onTap:(){
Timer t = Timer(
Duration(milliseconds:delay),(){
setState((){
_opacity = myNewValue;
});
});
}
更新:既然您說要堅持使用提供程式包,我假設您將 UI 狀態(在本例中為不透明度)存盤在 some 中ChangeNotifier,因此在這種情況下,只需替換setState為對更改通知程式的呼叫:
onTap:(){
Timer t = Timer(
Duration(milliseconds:delay),(){
context.read<MyUIStateChangeNotifier>().setOpacity(newOpacityValue);
}
作為旁注,這個小細節不需要更改通知程式來保存它,因為它只與當前螢屏相關,更改通知程式通常用于跨多個螢屏攜帶狀態,以免每次都傳遞狀態在建構式中
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/334728.html
