Android アプリでスクロールする画面を組むときに ScrollView を使い、その中に Admob の広告を配置しました。

画面が構築 (setContentView) され広告を表示するタイミングでなぜか勝手に Admob にスクロールされ、初期表示の位置が変わってしまう現象がおきました。

仕方なく、多少強引とは思えますが、ScrollViewのスクロールを先頭に移動させようと

scrollView.fullScroll(ScrollView.FOCUS_UP);
を試してみましたがやはり広告がロードされると動いてしまいます。

 

 

解決法 がこれです。
XML と Java のどちらでも同じ動きになります。

 

<XML>
ScrollView のなかのレイアウトに追加します。

android:descendantFocusability="blocksDescendants"


<Java>
ScrollView のなかのレイアウトにセットします。

layout.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);

 

 

これで強制スクロールを抑制できます。