ぶざまなw
この黒線はなんだ!?
結論から言うと、フルスクリーンモード以外の Activity には(多分必ず)この線が入ります。
普通のレイアウトで Theme.Light
普通のレイアウトで Theme.Light.NoTitleBar
普通のレイアウトで Theme.Light.NoTitleBar.Fullscreen
ほら、なくなったでしょ。
なので、試しにフルスクリーンでタブレイアウトにしてみました。
<application;gt タグに指定した場合
お、消えたよ。
なぜフルスクリーンモードでこの線がきえるかというと、
<item name="android:windowContentOverlay">@null</item>
を設定しているからなんです。
http://developer.android.com/reference/android/R.attr.html#windowContentOverlay
This Drawable is overlaid over the foreground of the Window's content area, usually to place a shadow below the title.
タイトルの下の影。まさにそれです。
つまり、この設定をした独自テーマを作れば別にフルスクリーンしなくてもいいんです。
と思って、タブコンテンツの <Activity> タグに上記の設定をした独自テーマを設定したんですけど、だめでした。 ><
それで、もしかして、、、、「タブコンテンツのテーマはタブホストのテーマと同じになって、個別に設定できない?」と思って、試しに TabHost の <Activity> タグに android:theme="@android:style/Theme.Black"、タブコンテンツの <Activity> タグに android:theme="android:style/Theme.Light" としたら、予想通り!タブコンテンツは黒テーマになりました。 orz
ならば、コードから!ということでタブコンテンツの onCreate() で setTheme(android.R.style.Theme_Light) したのですが、あえなく撃沈。。。
結局、TabHost のテーマに <item name="andorid:windowContentOverlay">@null<item /> 入れないとダメってことか。
ちゃんと消えるけど、TabHost のタイトルバーの下の影もきえちゃうから、なんかのっぺり。。。
タブコンテンツの onCreate() で
getWindow().setBackgroundDrawableResource(android.R.color.darker_gray);
とかやればウィンドウの背景を変えられるから、なんとかコードから windowContentOverlay の設定変えられないかなぁ。。。と思ったんだけど、runtime 時に個別の style 属性は設定できないみたい。いつか対応されるのかな。。。 http://www.mail-archive.com/android-developers@googlegroups.com/msg22161.html
のっぺりが嫌な場合は、上記のコードでタブコンテンツの背景を設定してごまかすしかないかも。
0 件のコメント:
コメントを投稿