我正在使用设置了对话主题的活动,我希望它是全屏的.我try 了各种方法,甚至通过WindowManager手动将窗口扩展到全宽和全高,但都不起作用.

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

必须有一种方法可以在对话框窗口中显示一些小东西,但在不调整内容大小的情况下将其扩展到全屏大小?

推荐答案

我找到了解决办法:

在设置了Theme.Dialog种风格的活动中,执行以下操作:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.your_layout);

    getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
}

重要的是,你打Window.setLayout() after,你打setContentView(),否则它将无法工作.

Android相关问答推荐

为什么使用. DeliverveAsState()时会出现空指针异常?

当X为lambda函数时,如何避免Android Studio错误检测参数X未使用?

Android设备.Net Maui上的mp3文件列表

组成底部导航栏,自定义形状,周围透明

NativeScript在`ns run android`上重复Kotlin类

在以XML格式设置完整屏幕视图时可见App Compat按钮

如何使可拖动内容停留在可组合框的边界内

我无法在底部导航栏中正确导航-Android底部导航视图

Android 构建失败:找不到 flexbox2.0.1.aar

Android WebView 不会在滚动端加载新内容

在 compose 中做可变状态堆栈

Jetpack Compose 如何使一个项目相对于另一个项目垂直居中

Android工作室未成立

从活动共享视图模型以使用 hilt 组合函数

Jetpack Compose 部分或开放侧边框

Composable 不会在单击按钮时重新组合

如何在jetpack compose中通过lamda返回columnScope/RowScope

Kotlin 调用带参数的函数 Any is xxx ||任何 yyy 都不起作用

Jetpack Compose:mutableStateOf 不随流量更新

Kotlin Compose forEach 中的负间距