Xamarinフォームでプログレスバーアニメーションを停止する最善の方法は何ですか?進捗状況は次のように開始されます:XamarinフォームProgressBar停止
animProgressBar = async() => {
...
await progressBar.ProgressTo (0, 10000, Easing.Linear);
...
};
アニメーションを停止して再起動します。私は、
のようなものを試してみました。
Xamarinフォームでプログレスバーアニメーションを停止する最善の方法は何ですか?進捗状況は次のように開始されます:XamarinフォームProgressBar停止
animProgressBar = async() => {
...
await progressBar.ProgressTo (0, 10000, Easing.Linear);
...
};
アニメーションを停止して再起動します。私は、
のようなものを試してみました。
私はProgressTo
をキャンセルすることが可能であることがわからないんだけど、私は自分のアニメーションを作成する最も簡単な解決策であることとします:
new Button
{
Text = "Kick progress bar",
Command = new Command(() =>
{
if (progressBar.AnimationIsRunning("SetProgress"))
{
progressBar.AbortAnimation("SetProgress");
}
else
{
progressBar.Animate("SetProgress",(arg) => { progressBar.Progress = arg; }, 8*60, 8*1000, Easing.Linear);
}
})
}
結果:
すべての進捗状況をリセットするようにprogressBar.Progress = 0
を設定することをお勧めします。
Device.StartTimer(System.TimeSpan.FromMilliseconds(200),() =>
{
myProgressBar.Progress += 0.01;
if (myProgressBar.Progress > .5)
{
myProgressBar.Progress = 0;
return false;
}
return true;
});
Hmmm ...ありがとうございます。プログレスバーは と一緒に使用されるため、ハックのようです animProgressBar =非同期()=> { \t \t \t \t ... \t \t \t \tはprogressBar.ProgressTo(0、10000、Easing.Linear)を待ちます。 \t \t \t \t ... \t \t \t}; とにかくそのアニメーションをキャンセルしますか? – Vladtn
myProgressBar.ProgressTo(0,1000、Easing.Linear)を待機します。最初のパラメータは、進行状況がアニメートされる値であり、2番目のパラメータはアニメーションの速度を表します。ですから、すぐに進捗をリセットするには、myProgressBar.ProgressTo(0、0、Easing.Linear)を待つことができます。 –
アニメーションが終了していない場合は、System.InvalidOperationExceptionが発生します。他のアニメーションが終了していないため、「タスクが完了した時点でタスクを最終状態に移行しようとしました。 – Vladtn
それは本当にクールです、ありがとう。アニメーションをやっていたことを教えてくれませんか?私はそれらを見てきましたが、任意のヒントが評価されるでしょう。ありがとうございました – Vladtn
確かに: "Animate"、 "AnimationIsRunning"、 "AbortAnimation"は、 "AnimationExtensions"クラスのメソッドです:https://developer.xamarin.com/api/type/Xamarin.Forms.AnimationExtensions/ –
申し訳ありません。ビジュアルgif。どうやったの? – Vladtn