Длинная версия: у меня есть игра для Android. На каждом «экране» я показываю рекламу, НО сам игровой экран - где вы на самом деле играете. Теперь, если вы запустили приложение-игру (реклама начинает загружаться), а затем нажали «Пуск» до того, как реклама закончила загрузку - она не будет отображаться, когда она должна быть (только маленькая полоска)
Короткая версия: вызов AdView.loadAd
, а затем AdView.setVisibility(View.INVISIBLE)
до получения объявления будет получен странный результат, если мы вызовем AdView.setVisibility(View.VISIBLE)
после загрузки объявления.
Это происходит:
Вместо, например:
Теперь нажатие на эту крошечную полоску слева все еще засчитывается как нажатие на объявление - нажатие на него делает все, что будет делать нажатие на объявление (запуск браузера и т. Д.)
И если вы вернетесь к начальному экрану (т.е. нажмите кнопку «Домой»), а затем вернетесь к приложению, объявление снова будет отображаться, как и должно.
Кто-нибудь предложил это, и есть ли у кого-нибудь идеи, как это решить? Спасибо.
РЕДАКТИРОВАТЬ: Вот соответствующий код:
Создание просмотра объявления:
this.mAdView = new AdView(this, AdSize.BANNER, "xxxxxxxxxxxxx");
Создание параметров макета:
final FrameLayout.LayoutParams adViewLayoutParams =
new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,
FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.TOP | Gravity.CENTER_HORIZONTAL);
Создание корневой группы представлений и ее параметров макета:
final FrameLayout frameLayout = new FrameLayout(this);
final FrameLayout.LayoutParams frameLayoutLayoutParams =
new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,
FrameLayout.LayoutParams.FILL_PARENT);
Добавление в корневую группу представлений:
frameLayout.addView(this.mAdView, adViewLayoutParams);
И, наконец, настройка просмотра содержимого:
this.setContentView(frameLayout, frameLayoutLayoutParams);