在我的Activity中,我做了一个简单的AlertDialog:

View view = layoutInflater.inflate(R.layout.my_dialog, null);
AlertDialog infoDialog = new AlertDialog.Builder(MyActivity.this)
                    .setView(view)  
                    .create();

infoDialog.show();

在上面的代码中,dialog显示在屏幕的中心.

我想知道,我如何定制对话框的位置,使其显示在顶部操作栏的下方?(有没有办法改变对话框的重力或其他东西?)根据我的代码怎么做??

推荐答案

我使用以下代码在屏幕底部显示对话框:

Dialog dlg = <code to create custom dialog>;

Window window = dlg.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();

wlp.gravity = Gravity.BOTTOM;
wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND;
window.setAttributes(wlp);

如果你需要的话,这段代码还可以防止android调暗对话框的背景.您应该能够更改重力参数来移动对话框

Android相关问答推荐

Android Locate对象中的' et '时间戳代表什么?

如何使用视图模型触发可变状态?

显示本地房间数据库中未保存的项目的动态列表

在Jetpack Compose中,material 3 Textfield上的底部边框 colored颜色 是如何更改的?

在模块中找到重复的类com.google.Firebase.auth.ktx.AuthKt||Android Studio

如何在Android中编写挂起函数和stateflow的单元测试

判断文本视图是否为单行

可组合:don';t剪辑视图

如何在 compose 中使用可变对象?

当我想使用例如 material3 时,为什么我需要添加对 material 的依赖?底部导航?

如何在 Jetpack Compose 中对齐按钮底部中心?

在模块 jetified-kotlin-stdlib-1.8.10 中发现重复的类 kotlin.random.jdk8,带有启动基准

在 jetpack compose 中交替使用 View.INVISIBLE

用作输入参数的 Lambda 函数导致重组

Electric Eel 后 Gradle 项目同步失败 | 2022.1.1更新

React-native 3D对象渲染

错误:构建 react-native 应用程序时包 com.facebook.react.bridge 不存在

compose 更改列表元素但lazyColumn不更改

如何在 react native 应用程序中显示复选框?当它在 android 模拟器中可见时

如何在 Android 应用中录制短视频?