[Android] 我如何获得一个对话框样式的活动窗口来填充屏幕?


Answers

我只想填充屏幕的80%,因为我确实喜欢下面的内容

        DisplayMetrics metrics = getResources().getDisplayMetrics();
        int screenWidth = (int) (metrics.widthPixels * 0.80);

        setContentView(R.layout.mylayout);

        getWindow().setLayout(screenWidth, LayoutParams.WRAP_CONTENT); //set below the setContentview

它只适用于当我把getwindow()。setLayout ...行放在setContentView(..)

谢谢@Matthias

Question

我正在使用对话框主题设置的活动,并且我希望它是全屏。 我尝试了各种各样的东西,甚至通过WindowManager将窗口手动展开为全宽和全高,但没有任何效果。

显然,一个对话框窗口(或对话框主题的活动)只会根据其内容进行扩展,但即使这样也不一定有效。 例如,我展示了一个宽度和高度设置为FILL_PARENT的进度条圆(其布局容器也是如此),但对话框仍然围绕着更小的进度条而不是填充屏幕。

必须有一种方法可以在对话框窗口内显示一些小内容,但是它会将内容大小调整为全屏尺寸并扩展为全屏尺寸?




这对像我这样的人会有帮助。 创建自定义对话框样式

<style name="MyDialog" parent="Theme.AppCompat.Light.Dialog">
    <item name="windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowIsFloating">false</item>
</style>

AndroidManifest.xml文件中为想要的活动设置主题:

<activity
        android:name=".CustomDialog"
        ...
        android:theme="@style/MyDialog"/>

就是这样,不需要调用方法程序。




在我们的活动被定义的清单文件中

<activity
        android:name=".YourPopUpActivity"
        android:theme="@android:style/Theme.Holo.Dialog" >
    </activity>

没有行动酒吧

<activity android:name=".YourPopUpActivity"
            android:theme="@android:style/Theme.Holo.Dialog.NoActionBar"/>



对于对话这可能对某人有帮助。 我想要一个对话框来取得整个屏幕的宽度。 搜查了很多,但没有发现有用。 最后这对我有用:

mDialog.setContentView(R.layout.my_custom_dialog);
mDialog.getWindow().setBackgroundDrawable(null);

添加完后,我的对话框将以全屏显示。




在最上面的布局中设置最小宽度。

android:minWidth="300dp"

例如:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="300dp">

<!-- Put remaining contents here -->

</LinearLayout>