Я столкнулся с немного странной проблемой при использовании темы Holo Dialog (@android:style/Theme.Holo.Dialog
) в Ice Cream Sandwich.
Кажется, что они игнорируют свои макеты и заполняют весь экран вместо ширины и высоты макета из своих макетов XML. Те же макеты работают, как и ожидалось, в Honeycomb, но не в Ice Cream Sandwich.
Пример:
Правильный способ (соты)
Неправильный способ (сэндвич с мороженым)
На обоих устройствах работает одна и та же версия приложения и используется один и тот же макет. Вот макет, о котором идет речь:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="940dp"
android:layout_height="600dp"
android:layout_margin="10dp" >
<GridView
android:id="@+id/gridView1"
android:layout_width="940dp"
android:layout_height="600dp"
android:horizontalSpacing="10dp"
android:numColumns="3"
android:smoothScrollbar="true"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" >
</GridView>
</LinearLayout>
Любые идеи, как это можно решить? Аналогичная проблема возникает на моем Galaxy Nexus на базе ICS, который полностью игнорирует тег match_parent
для высоты и ширины. Не работает ли тема диалога в ICS?
Обновление:
Я провел еще несколько тестов, и кажется, что ширина 894 dp или меньше будет давать «правильный» вид, но если я установлю ширину 895 dp или больше, это будет неправильный вид. Эмулятор ведет себя так же. Это крайне странно...