我正在开发一个日历应用程序,并希望在显示here的模式容器上显示添加事件表单。我试图创建一个自定义对话框但它确实做我想要的(here is a snapshot of my current dialog box),这是容器的宽度覆盖我的屏幕的90%。无论如何,他们可以调整对话框的大小或使用任何其他合适的容器,提前谢谢。
这是我的自定义对话框代码
public class QuickAddEventDialogBox extends Dialog implements View.OnClickListener{
private Context context;
private Button save, discard;
public QuickAddEventDialogBox(Context context) {
super(context);
this.context = context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.quick_add_event_dialogbox);
save = (Button) findViewById(R.id.btn_save);
discard = (Button) findViewById(R.id.btn_discard);
save.setOnClickListener(this);
discard.setOnClickListener(this);
}
答案 0 :(得分:0)
获取窗口并致电setLayout(width, height)
。像这样:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.quick_add_event_dialogbox);
//set layout here
this.getWindow().setLayout(600, 400);
...
}
答案 1 :(得分:0)
您是否尝试使用对话框的布局来使用 LinearLayout 并使用权重?
让你的 LinearLayout match_parent大小并且里面有一个子(对话框视图),权重为0.9(weightSum为1)并使用gravity =“center”或layout_gravity =“center”
在此处阅读 LinearLayout :
http://developer.android.com/guide/topics/ui/layout/linear.html
以下是一个例子:
How to make layout to be 80% of the width of the screen?
我相信这会以最优雅的方式解决您的问题。
答案 2 :(得分:0)
您可以使用以下方法调整对话框大小:
getDialog().getWindow().setLayout(w,h);
如果你想要90%的宽度:
Display display = getWindowManager().getDefaultDisplay();
getDialog().getWindow().setLayout(display.getHeight() * 0.9,
display.getWidth() *x [or wrap_content]);
也有人建议使用重量,这是一个好主意。