用于包装内容的对话活动

And*_*eas 18 android android-layout

与此相关的问题与对话活动以及如何制作这些全屏有关,但我的问题略有不同.我希望这些对话框包装活动内容.

现在,"对话活动"都继承了以下主题,

<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>
Run Code Online (Sandbox Code Playgroud)

清单中的活动定义示例,

<activity android:name=".TabSettingsActivity"
    android:theme="@style/tabDialog" android:excludeFromRecents="true"
    android:configChanges="keyboardHidden" />
Run Code Online (Sandbox Code Playgroud)

内容视图父视图定义如下,

<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">
Run Code Online (Sandbox Code Playgroud)

并且布局中的所有子视图还为两个维指定了wrap_content.我也试过使用RelativeLayout作为父亲,但同样如此.

在活动的onCreate中设置了内容视图后,我这样做了

  getWindow().setLayout(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);
Run Code Online (Sandbox Code Playgroud)

这些东西实际上似乎都没有任何区别.问题主要与对话框高度有关,大约比必要大50%.对话框的一半只是死空间.将根视图维度设置为硬编码的dp单位可以解决问题,但这似乎是一种解决方法而不是解决方案.

任何人的想法?

提前致谢.

干杯

Mer*_*lin 1

尝试设置layout_margin。如果失败,则可能是常规活动填充和边距造成的。