2014-10-21 3 views
0

Я использую следующий код, чтобы показать/скрыть рекламный баннер:Android Фрагмент не обновлял

private void showAd(boolean show) { 

    FragmentManager fm = getSupportFragmentManager(); 
    if (show) { 
     Log.d(TAG,"show ad"); 
     fm.beginTransaction() 
       .show(m_adFragment) 
       .commit(); 
    } else { 
     Log.d(TAG,"hide ad"); 
     fm.beginTransaction() 
       .hide(m_adFragment) 
       .commit(); 
    } 
} 

После покупки пользователь, чтобы разблокировать, то showAd (истина) будет называться (это вызванный на основе моего журнала). Проблема заключается в том, что фрагмент рекламного баннера пока отображается до тех пор, пока я не перейду в другую деятельность и не вернусь.

Может ли кто-нибудь сказать мне, что мне не хватает в моем коде?

Благодаря

ответ

0

вызова .executePendingTransactions(); после .commit().

Commit на самом деле не выполняет его, планируя транзакцию, которая должна быть выполнена. Выполнение вручную обычно не требуется, но похоже, что у вас может быть что-то, что мешает фиксации в потоке пользовательского интерфейса.

+0

Не работает для меня. Вызывается .commit. Но после .executePendingTransactions() фрагмент все еще не обновляется. –

+0

Вы пытались использовать .remove вместо того, чтобы просто скрывать его? Есть ли причина, по которой вы хотите, чтобы она оставалась в иерархии представлений? –

+0

У меня есть попытка .remove(). Спасибо –

Смежные вопросы