как приостановить действие, когда диалоговое окно открыто в xamarin

у меня есть анимация в моей деятельности, логотип, который вращается....

я вызываю функцию onBackPressed(), которая показывает диалоговое окно с предупреждением «вы уверены, что хотите выйти?» есть две кнопки "Да" или "Нет"

..... я хочу приостановить свою деятельность, чтобы логотип не вращался, пока диалоговое окно открыто...

вот мой код

public override void OnBackPressed()
    {
        AlertDialog.Builder exit = new AlertDialog.Builder(this);
        exit.SetMessage("Are you sure You want to Exit");
        exit.SetCancelable(false);
        exit.SetPositiveButton("yes", (object sender, DialogClickEventArgs e) =>
         {
             this.Finish();
         });
        exit.SetNegativeButton("No", (object sender, DialogClickEventArgs e) =>
         {
         });
        exit.Show();}

person Junaid umar    schedule 01.06.2016    source источник


Ответы (2)


Держите ссылку на свою анимацию и вызовите паузу при отображении диалога:

public override void OnBackPressed()
{
    AlertDialog.Builder exit = new AlertDialog.Builder(this);
    exit.SetMessage("Are you sure You want to Exit");
    exit.SetCancelable(false);
    exit.SetPositiveButton("yes", (object sender, DialogClickEventArgs e) =>
     {
         this.Finish();
     });
    exit.SetNegativeButton("No", (object sender, DialogClickEventArgs e) =>
     {
       myAnimation.resume();
     });
    myAnimation.pause();
    exit.Show();
}

Вы можете использовать этот хороший пример/ответ, чтобы узнать, как приостановить и возобновить анимацию: https://stackoverflow.com/a/10028575/4706693 ИЛИ используйте простую паузу и возобновление из класса Animator, если это то, что вы используете

person NSimon    schedule 01.06.2016

Вы can't приостанавливаете действие, но lifecycle метод действия OnPause() будет вызываться при отображении диалогового окна.

Вы можете просто stop/pause анимировать в OnPause() методе своей деятельности.

person Nongthonbam Tonthoi    schedule 01.06.2016
comment
Вы не вызываете такие методы, как OnPause(), Android будет вызывать их при необходимости. - person Nongthonbam Tonthoi; 01.06.2016