2011-02-06 12 views
1

私のアプリケーションでは、マニフェストファイルのテーマ機能を使用して、自分のアクティビティのタイトルバーと通知バーを非表示にします。このアクティビティの最下部には、48dpiの高さの広告バナーがあります。この上にスペースの残りの部分は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> 

は、しかし、私は(通知バーを返すために例)ホームキーを離れて私のアプリからの切り替え、その後スイッチバックに問題があります私の活動に。私が戻ったとき、画面は短時間黒くなり、描かれたサーフェスビューが通知バーの下に表示され、通知バーがアニメーション表示されて消えて、サーフェイスビューが画面の一番上に移動します。問題は、黒の横長の四角形が、広告バーの上端をマスキングしていることです。このバーは、通知バーと同じ高さになります。 ASCIIアート:

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

通知バーが消え、バーが消えたときにビューが再レイアウトされているが、何かが広告バーをレイアウト間違って行く前のビューがレイアウトされているかのようです。

私はこれをどのように修正することができますか?

私はAndroid 2.1を利用しています。私は代わりのRelativeLayoutアプローチを試みましたが、同じ問題がありました。もう1つの選択肢はおそらくそれを修正するかもしれないが、私は何も考えることができない。

編集:関連するマニフェストコード私の活動を設定する:あなたは、Javaコードを経由して通知バーを削除するのではなく、あなたのマニフェストにandroid:theme="@android:style/Theme.NoTitleBar.Fullscreen"を使用する場合、この問題が消えることがあり

<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

どのようなメソッドが 'NO_TITLE'機能と' FULLSCREEN'フラグをどのような順序で設定しているかを示す 'Activity'コードを少し投稿してください。 – Blrfl

+0

ありがとう、私はアプリケーションをフルスクリーンに設定するマニフェストコードを追加しました。私はメソッド呼び出しを使ってこれをしません。 – rbcc

答えて

0

。このテーマを使用するthis sample projectでテストすると、私はあなたが描いているアニメーション効果を見ていません。

+0

ありがとうございますが、私はすでにフルスクリーンに切り替わります。これを行うメソッド呼び出しはありません。この問題は、私のサーフェスビューの下に固定サイズのバナーを置くこととは特に関係していると思います(あなたのプロジェクトは、レイアウトで大きなサーフェイスビューを使用するようです)。私が試すことができるものは何か考えてもらえますか?今はオプションがありません。私は、私のサーフェスビューを例えばイメージビュー私は同じ問題を起こさない。私は、サーフェイスビューがどんな大きさになりたいかを決めるときに、何かをするかもしれないと思っています。 – rbcc

+0

@rebeccamaher: 'SurfaceView'は奇妙な鳥です。どのようなデバイスでこの現象が見られますか? 'RelativeLayout'に切り替えることもできます。バナーの位置は、' SurfaceView'がどのくらい大きくなっているかではなく、明示的なレイアウトルールによって決定されます。 – CommonsWare

+0

@rebeccamaher:私はマイルストーンでこれをテストしていますが、それはエミュレータでも起こります。私は相対レイアウトのアプローチを試みました。私は、どのビューが何に相対的であるかの異なる順列を試すことができると思います。 – rbcc

関連する問題