第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

片段交易.替換導致應(yīng)用程序中的白色(空白?)屏幕

片段交易.替換導致應(yīng)用程序中的白色(空白?)屏幕

C#
慕田峪4524236 2022-08-20 14:49:57
我的應(yīng)用的流程如下:主要活動: 家居碎片 ->停電設(shè)置碎片 ->停電碎片 ->家居碎片出于某種原因,當我嘗試從BlackoutFragment轉(zhuǎn)到HomeFragment時,MainActivity變?yōu)榭?,并且在我離開應(yīng)用程序并返回它之前沒有任何渲染。左邊是HomeFragment通常的樣子,右邊是當我導航回它時的樣子:我用來設(shè)置片段的方法集:    // Which is invoked like     // SetFragment(typeof(HomeFragment), "Home", true, true, false);    public void SetFragment(Type fragmentType, string fragmentName, bool addToBackStack, bool showNavigationIndicator, bool useSlideAnimation)    {        if (fragmentType == typeof(HomeFragment))            SetFragment(new HomeFragment(), fragmentType, fragmentName, addToBackStack, showNavigationIndicator, useSlideAnimation);        else if (fragmentType == typeof(BlackoutFragment))            SetFragment(new BlackoutFragment(), fragmentType, fragmentName, addToBackStack, showNavigationIndicator, useSlideAnimation);        else if (fragmentType == typeof(BlackoutSetupFragment))            SetFragment(new BlackoutSetupFragment(), fragmentType, fragmentName, addToBackStack, showNavigationIndicator, useSlideAnimation);    }    private void SetFragment(Fragment fragment, Type fragmentType, string fragmentName, bool addToBackStack, bool showNavigationIndicator, bool useSlideAnimation)    {        FragmentTransaction transaction = this.FragmentManager.BeginTransaction();        if (useSlideAnimation)            transaction.SetCustomAnimations(Resource.Animator.enter_from_left, Resource.Animator.exit_to_right, Resource.Animator.enter_from_right, Resource.Animator.exit_to_left);        transaction.Replace(Resource.Id.content_main_fragment_layout, fragment, fragmentType.Name);        if (addToBackStack)            transaction.AddToBackStack(null);        transaction.Commit();        this.FragmentManager.ExecutePendingTransactions();        if (!string.IsNullOrWhiteSpace(fragmentName))            SetAppBarTitle(fragmentName);        if (showNavigationIndicator) _navDrawerToggle.DrawerIndicatorEnabled = true;        else _navDrawerToggle.DrawerIndicatorEnabled = false;    }
查看完整描述

2 回答

?
慕神8447489

TA貢獻1780條經(jīng)驗 獲得超1個贊

問題是使用,以便在BlackoutFragment上使用倒計時來更新UI。將其替換為似乎已解決了該問題。我的猜測是,在UI線程上運行的經(jīng)過的事件“RefreshView”在嘗試離開片段時引起了一些趣味。System.Timers.TimerSystem.Threading.Timer


所以替換:


    public override void OnResume()

    {

        base.OnResume();

        //...

        _refreshTimer = new System.Timers.Timer();

        _refreshTimer.Interval = 1000;

        _refreshTimer.Elapsed += RefreshView;

        _refreshTimer.Start();

    }


    public override void OnPause() 

    {

        base.OnPause();

        //...

        _refreshTimer.Dispose();

    }

跟:


    public override void OnResume()

    {

        base.OnResume();

        //...

        _refreshTimer = new System.Threading.Timer(RefreshView, null, 0, 1000);

    }


    public override void OnPause()

    {

        base.OnPause();

        //...

        _refreshTimer.Dispose();

    }

解決了我的問題。


查看完整回答
反對 回復 2022-08-20
?
九州編程

TA貢獻1785條經(jīng)驗 獲得超4個贊

您不應(yīng)將初始 Fragment 添加到回堆棧中,因為這將導致它是可逆事務(wù)。這意味著如果你的初始狀態(tài)是“無片段”,并且你為“no fragment”->“HomeFragment”添加到backstack,那么你可以彈出回“no fragment”狀態(tài)。

只需更改對初始片段的調(diào)用,使其不會將其添加到回堆棧中。


查看完整回答
反對 回復 2022-08-20
  • 2 回答
  • 0 關(guān)注
  • 98 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號