android - 如何将 AdMob 放置在屏幕顶部(上方)Android Actionbar?

标签 android android-layout android-actionbar admob

我试图将 AdMob 广告放置在 Android 操作栏的屏幕顶部(上方)。 ActionBar AdMob above

  • 黄色 = 操作栏
  • 红色 = 内容
  • green = AdMob

A similar question我发现是在屏幕底部放置一个广告,并显示 Actionbar。但到目前为止,我还不知道如何将它放在屏幕顶部。

我这样试过:

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);
}

下面您可以看到我的应用程序的层次结构查看器的一部分。 View “id/main”是我的主要布局。 正如您在图片中看到的,ActionBar 有一个名为“id/action_bar_container”的 id。在我上面的代码中,我设法访问了 FrameLayout“内容”,但我无法访问 action_bar_container View 。因为它们处于相同的层次结构级别(我认为),所以应该可以以某种方式访问​​该 ActionBar View 。

enter image description here

但是没有成功:

Without ActionBar displayed

任何想法如何实现它或它如何工作的链接或它不起作用的官方声明。

最佳答案

您可以在任何 View 上使用getRootView()getWindow().getDecorView() 来获取PhoneDecorView。它有一个子项 - 一个垂直LinearLayout

在那里添加您的布局作为第一个 child 。

请注意,这是一个非常糟糕的主意。从用户体验的角度来看,这是对所有设计指南的可怕打击。出于多种设计原因,操作栏必须位于顶部。

其次,这可能会在 OEM 主题设备上中断。

第三,横向平板电脑,你真的会在顶部有这么大的栏吗?

总而言之,是的,这是可能的,但这是一个糟糕的想法。不要这样做。

关于android - 如何将 AdMob 放置在屏幕顶部(上方)Android Actionbar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17258323/

相关文章:

android - Angular2 自定义请求

android - 在 Activity 过渡动画期间保持 Action Bar 稳定

java - ActionBar 设置区域的自定义背景颜色

android - 在 android 的 facebook 墙上分享链接

Android - 如何加入两个视频

java - If/else 条件与 firebase 值

Android Scrollview 自动向上滚动

java - 从 Java 类(Android 应用程序)中更改 RelativeLayout 的背景图像

android - 无法使包含的 View 与布局中的父底部对齐

Android 删除应用程序图标操作栏