AdMobから戻るとレイアウトがずれてしまいます

626 views
Skip to first unread message

そうめい

unread,
Mar 28, 2011, 11:09:50 PM3/28/11
to 日本Androidの会
みなさま
お世話になります。

現在開発をしているアプリで
AdMobの広告を表示させているのですが、
クリックして広告主のサイトを表示させ
端末の戻るボタンで元のActivityに戻ると
タスクバーの分だけレイアウトがズレてしまうという現象が発生しています。

アプリは横画面表示固定(landscape)でフルスクリーンモード、
上部中央にAdMobの広告を表示しています。

広告をクリックして表示後、「戻る」ボタンでActivityに戻ると
画面上部にちょうどタスクバー分の黒い領域ができてしまい
その分Activity全体が下へズレて表示されてしまうのです。

Activity下部にはボタンを配置してあるのですが、
それが半分くらいに切れて表示されてしまいます。

ちなみに、アプリは横固定なのですが、
端末を縦に持ったままAdMob広告を縦位置表示させ
そのまま戻るとズレは発生しません。



フルスクリーンモードは
Manufestファイル内で
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
として実装しています。


ちなみに、ズレた状態でダイアログを表示させると
ズレが解消されます。

なのでレイアウトファイル(XML)を
再読み込み(?)させれば解消できるのかと思い、
onResume()内で
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
を呼び出してみましたが、解決しませんでした。

同じく onResume() 内で
setContentView(R.layout.main);
を再読み込みしてみたところ
ズレは解消したのですが、
実装上の都合でこの方法は使いたくありません。



ちょっとマニアックな質問で申し訳ないですが、
なにか思い当たることがある方
ぜひご回答いただければと思います。
ヒントでも構いません。

よろしくお願いいたします。


Stone

unread,
Mar 29, 2011, 12:30:53 AM3/29/11
to 日本Androidの会
Stone@調布、東京です。

同じような眼に会いました。
原始的な方法ですが、以下のようにしました。
広告先に飛ぶ時AdmobのVisibleをfalseにする。
戻ってきたとき、0.5秒だけ待ってVisbleをtrueにする。
あまりに不細工な方法ですが、少なくともずれは消えます。

Nkzn

unread,
Mar 29, 2011, 1:23:28 AM3/29/11
to 日本Androidの会
なかざんです。

> onResume()内で
> getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

これ、onWindowFocusChanged()内で実行したらどうなりますか?
onResume()の時点ではViewのサイズが確定されていないため、レイアウトを指定してもずれてしまうかもしれません。
onWindow~だとViewが確定した後に呼び出されるので、AdMob部分には影響しないかもです。

--Yukiya Nakagawa

On 3月29日, 午後12:09, そうめい <isy.sow...@gmail.com> wrote:

そうめい

unread,
Mar 29, 2011, 2:12:04 AM3/29/11
to 日本Androidの会
Stoneさん、なかざんさん

ご回答ありがとうございます!



>Stoneさん

同じような状況に遭遇した方がいるとは驚きです(^_^;)

ということは、AdMobがオイタをしているってことなんでしょうか?

おっしゃる通りにしましたら
ズレがなくなるようになりました。

具体的には
onPause() 内でINVISIBLE設定して
onResume() 内で500ミリ秒待ってVISIBLE設定しました。

ただ、まだたまーにズレるようです。(時間の問題?)
が、実用にはナントカ耐えられそうです!

ありがとうございます!



>なかざんさん

onWindowFocusChanged()内で
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
を実行してみましたが、やはりダメでした(>_<)

ありがとうございます!
Reply all
Reply to author
Forward
0 new messages