Android:在容器中心显示自定义对话框

Android:在容器中心显示自定义对话框,android,android-dialog,Android,Android Dialog,如何将自定义对话框显示为容器的中心 Dialog customdialog = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar); Window window = customdialog.getWindow(); window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); window.setGravity(Gravity.CENTER);

如何将自定义对话框显示为容器的中心

Dialog customdialog = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar); 
Window window = customdialog.getWindow();
window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
window.setGravity(Gravity.CENTER);
R.style.Theme\u transparent\u NoTitleBar
-用于删除cutomdialog的边框。使用这一行后,对话框将出现在平板电脑的左上角


有人能帮我解决这个问题吗?

将填充父项更改为包装内容。我希望这就是活动角落出现的对话框的问题。它占用了整个布局的空间。因此,更改此选项可能会帮助您获得真正想要的内容

Window window = customdialog.getWindow();
window.setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.CENTER);

在dialog.show()语句之后使用上述代码

我将其添加到对话框的自定义样式中,效果很好

<item name="android:layout_gravity">center</item>
中心
“我的对话框”的宽度和高度设置为“包裹内容”。样式的父级是


parent=“@android:style/Theme.Light”

我将选择这段代码:

        WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
        Window window = dialog.getWindow();
        lp.copyFrom(window.getAttributes());
        //This makes the dialog take up the full width
        lp.width = WindowManager.LayoutParams.MATCH_PARENT;
        lp.height = WindowManager.LayoutParams.MATCH_PARENT;
        window.setAttributes(lp);

其中dialog是要显示的对话框对象。在对话框的布局内部,您可以根据需要定义布局视图:居中或不居中。

我使用此代码解决了问题

Window window = alertDialog.getWindow();
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.CENTER);

接受答案并进行投票,这将有助于我们双方提高声誉,因此请使用此ans@Kamal进行同样的操作,很高兴能帮助您。:-)但我不想给出window.setLayout(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);它是否可能是一个量化的窗口。setDimAmount(0.5f);但它不起作用。然后将根布局设置为主布局,并设置宽度和高度以填充父布局,背景半透明,但布局位于顶部。若要删除边框,请创建自定义背景并将其添加到样式@android:color/transparentInDect,我按照Sreedev的建议进行了操作,但我无法在中心获得对话框。在我的样式中添加此参数为我解决了问题。不要复制LayoutParams,它会破坏边界渲染。使用lp=window.getAttributes();