如何将自定义对话框显示为容器的中心?
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_Translucent_NoTitleBar
- 用于删除cutomdialog的边框。一旦我使用此行,对话框将出现在平板电脑的顶部角落?
有人可以帮我解决这个问题吗?
答案 0 :(得分:45)
将fill_parent更改为wrap_content。我希望这将是对话框出现在活动一角的问题。它占用了整个布局的空间。所以改变它可以帮助你获得你真正想要的东西。
Window window = customdialog.getWindow();
window.setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.CENTER);
答案 1 :(得分:10)
我将此添加到对话框的自定义样式中,并且工作正常。
<item name="android:layout_gravity">center</item>
我的对话框的宽度和高度设置为wrap_content。样式的父级是
父= “@机器人:风格/ Theme.Light”
答案 2 :(得分:0)
我会选择这段代码:
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);
其中对话框是要显示的对话框对象。在对话框的布局中,您可以根据需要定义布局视图:居中与否。
答案 3 :(得分:0)
我使用此代码并解决了问题
Window window = alertDialog.getWindow();
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.CENTER);