2011-02-06 61 views
1

对于我的应用程序,我使用清单文件中的主题功能隐藏了我的活动的标题栏和通知栏。在活动的底部,我想要有一个48dip高的广告横幅,在这个空间的其余部分应该填充一个来自我的GameView类的对象,在这里它只是延续了Lunar Lander示例中的SurfaceView。将横幅放置在布局底部的问题

我目前的布局做这个任务对我来说:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" android:layout_height="fill_parent" 
android:orientation="vertical"> 

    <GameView android:id="@+id/game_view" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:layout_weight="1"> 

<com.admob.android.ads.AdView android:id="@+id/ad" 
    android:layout_width="fill_parent" android:layout_height="48dip" /> 

</LinearLayout> 

然而,当我从我的应用程序中切换出来与Home键(通知栏要返回的情况下),然后切换回问题到我的活动。当我切换回来时,屏幕短时间变黑,我的绘制表面视图出现在通知栏下方,通知栏随后呈现动画并消失,然后我的表面视图切换到屏幕顶部。现在的问题是,黑色的水平矩形现在掩盖了我的广告横幅的顶部,此横条与通知栏的高度相同。 ASCII艺术:

------------- 
|   | 
|   | <- surface view the same size as expected 
|   | 
|   | 
############# <- black rectangle 
|   | <- ad banner with the top part masked by the rectangle 
------------- 

这是因为如果该意见的通知栏前奠定了消失,当栏消失的观点再次布局,但出现问题奠定了广告栏。

有关如何解决此问题的任何提示?

我在Android 2.1上,如果它有帮助。我尝试了一种替代的RelativeLayout方法,但遇到同样的问题。另一种选择可能会解决它,但我想不出任何东西。

编辑:相关清单代码设置我的活动:

<application android:label="@string/app_name" android:icon="@drawable/app_icon"> 
    <activity android:name="MainActivity" android:label="@string/app_name" 
     android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
.... 
+0

请从你的Activity中发布一些代码,显示哪些方法正在设置'NO_TITLE`和`FULLSCREEN`标志以及顺序。 – Blrfl 2011-02-06 12:49:38

+0

谢谢,我添加了我的清单代码,将应用程序设置为全屏。我不使用方法调用来做这件事。 – rbcc 2011-02-06 17:36:55

回答

0

如果您在使用清单android:theme="@android:style/Theme.NoTitleBar.Fullscreen"而不是删除通过Java代码中的通知栏这个问题可能会消失。 Leastways,当我使用此主题进行this sample project测试时,我看不到您描述的动画效果。

相关问题