Dialog 大小和位置的控制

本文详细介绍了如何使用AlertDialog创建对话框,并提供了调整对话框大小、位置以及获取标题栏高度的方法。通过实例演示,清晰地展示了每个步骤的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这段时间来一直研究dialog了,dialog中有一个特例而且经常使用他是AlertDialog它的创建是需要使用builder这个参数,可以直接使用builder来创建对话框,但有一些设置就需要用他的父类dialog来设置了。像大小,位置等这些。AlertDialog有一个特殊的地是他有setMessage,这个方法可以直接设置dialog内容为文本。

进入正题设置dialog为无标题使用这个方法:

Dialogdialog = arrowsDlg.create();

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

如果看不清看下面的截图:


Dialog  dialog = arrowsDlg.create();

dialog.requestWindowFeature(Window.FEATRUE_NO_TITLE);

这个参数对位置没有限制,但下面设置dialog的大小,和位置就对位置有要求了



dialog.show();

Window window = dialog.getWindow();

WindowManager.LayoutParams lp = window.getAttributes();

lp.width = 280;

lp.height = 600;

dialog.getWindow.setAttributes(lp);


这是设置dialog的大小他必须放在dialog.show()的后面,紧挨着不然是没有作用的,这点一定要注意上。

下面是设置dialog的位置:


dialog.show();

Window window = dialog.getWindow();

WindowManager.LayoutParams lp = window.getAttributes();

lp.x = 200;

lp.y = 300;

dialog.getWindow.setAttributes(lp);


对于设置dialog位置android中的对话话默认都居中显示,如果想改变dialog的显示位置,可以通过设置LayoutParams.xLayoutParams.y来实现:

 

居中时lp.x=0,lp.y=0,即屏幕的坐标原点正好位于屏幕的正中间。

所以这个位置和屏幕位置是不一样的这点也要注意。

还有就是设置dialog大小和位置这两个可以一块使用的

 

 

另外再提一点是求标题栏的高度。这个在很多地方用的


//得到标题高度

Rect frame = new Rect();

Activty activity = (Activity)context;

Window window= activity.getWindow();

((Activity)context).getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);

int contentTop = activity.getWindow().findViewbyId(Window.ID_ANDROID_CONTENT).getTop();

int statusBarHeight = frame.top;

//statusBarHeight是上面所求的状态栏的高度

int titleBarHeight = contentTop - statusBarHeight;


我这个是在activity外面用的,所以用了context转activity。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值