Android2.3互換指定にしていても、2.3と4.0でPreferenceActivityの見た目が異なる

2.3(Gingerbread)ベースで作ったアプリを修正せずに4.0で動かすとき、AndroidManifest.xmlにtargetSdkVersionやmaxSdkVersionを"10"にしておけば、下位互換で2.3までと同じ見た目(テーマ)で表示されると思っていたのだけど、PreferenceActivityに関しては少し見た目が異なるようだ。

↓は2.3(Gingerbread/GB)での表示。ListView部分は画面幅いっぱいに表示されてる。
device-2012-03-18-010735

↓は4.0(Ice cream sandwich/ICS)での表示。
device-2012-03-18-010651

なぜか4.0だとListView部分が画面の真ん中に縮小したような感じで表示されてしまう。

どうもこれには条件があるようで、
・横画面
・横画面にしたときの画面解像度幅が1280px以上(上記の場合は1280x720)
の時らしい。

大画面タブレット向けのレイアウトになってるのかな?とも思わなくもないのだが、manifestでSdkVersionを10にしているので、2.3と同じように表示して欲しいところ。2.3ベースで作ったアプリを、特に4.0に特化した修正をせずに(fragment使ったり)そのまま載せたいケースもあると思うのだけど、こういう風に挙動が少し異なると厄介。

まぁ、このせいで仕事でバグ票切られてて(同じはずなのに見た目が違う)どうしよう…って話なんだけど。

タイトルとURLをコピーしました