Были похожие вопросы, связанные с диалоговыми действиями и как сделать их полноэкранными, но у меня немного другая проблема. Я хочу, чтобы эти диалоги обернули содержимое активности.
Теперь все «диалоговые действия» наследуют следующую тему:
<style name="tabDialog" parent="@android:Theme.Dialog">
<item name="android:windowBackground">@drawable/panel_background</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">false</item>
</style>
Пример определения активности в манифесте,
<activity android:name=".TabSettingsActivity"
android:theme="@style/tabDialog" android:excludeFromRecents="true"
android:configChanges="keyboardHidden" />
Родительский вид представления содержимого определяется следующим образом:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:background="@layout/dialog_rounded_background"
android:orientation="vertical">
и все дочерние представления в макете также указывают wrap_content для обоих измерений. Я пытался использовать RelativeLayout в качестве родителя, но то же самое.
После того, как в onCreate операции было установлено представление содержимого, я делаю это
getWindow().setLayout(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
Ни одна из этих вещей, кажется, вообще ничего не меняет. Проблема в основном связана с высотой диалогового окна, которая примерно на 50% больше необходимой. Половина диалога - просто мертвое пространство. Установка размеров корневого представления для жестко заданных единиц измерения dp решает проблему, но это скорее обходной путь, чем решение.
Есть идеи у кого-нибудь?
Заранее спасибо.
Приветствия