Android アクションバーの上 (上) に AdMob 広告を配置しようとしています。
- 黄色 = アクションバー
- 赤 = コンテンツ
- 緑 = AdMob
私が見つけた同様の質問は、アクションバーが表示された状態で画面の下部に広告を配置することです。しかし、これまでのところ、画面の上部に配置する方法がわかりませんでした。
私はこのようにしてみました:
private AdView adView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// main view setup
setContentView(R.layout.main);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
// actionbar setup
ActionBar actionBar = getActionBar();
actionBar.setTitle("Search");
actionBar.setDisplayHomeAsUpEnabled(true);
final LinearLayout content = (LinearLayout) findViewById(android.R.id.content).getParent();
// Create the adView
adView = new AdView(this, AdSize.BANNER, "ID");
// Lookup your LinearLayout assuming it’s been given
// the attribute android:id="@+id/mainLayout"
// Add the adView to it
FrameLayout.LayoutParams parm = (FrameLayout.LayoutParams) content.getLayoutParams();
parm.gravity = Gravity.TOP;
content.addView(adView);
// Initiate a generic request to load it with an ad
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice("TEST_DEVICE_ID");
adView.loadAd(adRequest);
}
以下に、私のアプリの階層ビューアの一部を示します。ビュー「id/main」は私のメイン レイアウトです。画像でわかるように、ActionBar には「id/action_bar_container」という ID があります。上記のコードでは、FrameLayout の「コンテンツ」にアクセスできましたが、action_bar_container ビューにアクセスできませんでした。それらは同じ階層レベルにあるため (私が思うに)、何らかの方法でその ActionBar ビューにアクセスできるはずです。
しかし、うまくいきませんでした:
それを達成する方法、またはそれがどのように機能するかのリンク、または機能しないという公式声明。