How to limit Dialog's max height?

1. We can make it to play trick in code.

At Dialog‘s show function, after app has set contentView, we can add a GlobalLayoutListener on decorView‘s ViewTreeObserver. At the listener, we can check the decorView‘s height, if over the max height, just truncate it.

 1 private void resolveAlertDialogHeight() {
 2         WindowManager wm = (WindowManager) mContext
 3                 .getSystemService(Context.WINDOW_SERVICE);
 4         Display display = wm.getDefaultDisplay();
 5
 6         Point size = new Point();
 7         display.getSize(size);
 8         int height = size.y;
 9
10         final int maxHeight = (int) (height * 0.68);
11
12         final View decorView = mWindow.getDecorView();
13         decorView.getViewTreeObserver().addOnGlobalLayoutListener(
14                 new OnGlobalLayoutListener() {
15                     @Override
16                     public void onGlobalLayout() {
17                         int actualHeight = decorView.getMeasuredHeight();
18
19                         WindowManager.LayoutParams l = mWindow.getAttributes();
20                         if (actualHeight > maxHeight) {
21                             l.height = maxHeight;
22
23                             mWindow.setAttributes(l);
24                         }
25
26                         decorView.getViewTreeObserver()
27                                 .removeOnGlobalLayoutListener(this);
28                     }
29                 });
30     }

2. Modify windowBackground reference png.

The dot9 png referenced by android:windowBackground attr is the Dialog‘s background. We can modify this dot9 png, adding extra padding on top and bottom to limit the margin of Alert.

How to limit Dialog's max height?

时间: 2024-09-29 17:27:20

How to limit Dialog's max height?的相关文章

jquery ui中的dialog,官网上经典的例子

jquery ui中的dialog,官网上经典的例子 jquery ui中dialog和easy ui中的dialog很像,但是最近用到的时候全然没有印象,一段时间不用就忘记了,这篇随笔介绍一下这个控件. 1.实例 官网源代码中给出了一些实例,首先看看实例是什么样子的. a.默认功能 也是最简单的应用,也就是打开一个对话框,代码如下 <!doctype html> <html lang="en"> <head> <meta charset=&q

jquery ui中的dialog

jquery ui中dialog和easy ui中的dialog很像,但是最近用到的时候全然没有印象,一段时间不用就忘记了,这篇随笔介绍一下这个控件. 1.实例 官网源代码中给出了一些实例,首先看看实例是什么样子的. a.默认功能 也是最简单的应用,也就是打开一个对话框,代码如下 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <tit

jQuery UI 对话框(Dialog) - 模态表单

<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>jQuery UI 对话框(Dialog) - 模态表单</title> <link rel="stylesheet" href="//apps.bdimg.com/libs/jqueryui/1.10.4/css/jquer

EasyUI Dialog 对话框

扩展自 $.fn.window.defaults.通过 $.fn.dialog.defaults 重写默认的 defaults. 对话框(dialog)是一个特殊类型的窗口,它在顶部有一个工具栏,在底部有一个按钮栏.默认情况下,对话框(dialog)只有一个显示在头部右侧的关闭工具.用户可以配置对话框行为来显示其他工具(比如:可折叠 collapsible.可最小化 minimizable.可最大化 maximizable,等等). 依赖 window linkbutton 用法 通过标记从已有

shell &amp; dialog

最近使用dialog写图形自动化shell脚本,  功能很强大,功能不是非常多但是足够用.想写一篇linux下dialog的使用方法,虽然命令不多,但是写起来也需要下很大功夫,而且不一定写得更好,在网上发现一篇linux shell图形化脚本文件,于是转过来了. liunx 下的dialog 工具是一个可以和shell脚本配合使用的文本界面下的创建对话框的工具.每个对话框提供的输出有两种形式:1.  将所有输出到stderr 输出,不显示到屏幕.2.  使用退出状态码,“OK”为0,“NO”为1

1. EasyUI 对话框dialog

文章参考来源:http://www.cnblogs.com/xdp-gacl/p/4075079.html 感谢博主的分享,写得非常精细,我在这边给看过的做一个记录. 一.EasyUI下载 使用easyui开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签. EasyUI官方下载地址:http://www.jeasyui.com/download/index.php,目前最新的版本是:jQuery EasyUI 1.5 解压后

20151124 Jquery UI form 表单变成dialog

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="

easyUI中Window Dialog的配置

1. Dialog 的配置参数是扩展于Window Extend from $.fn.window.defaults. Override defaults with $.fn.dialog.defaults.2. Window的配置参数是扩展于Panel Extend from $.fn.panel.defaults. Override defaults with $.fn.window.defaults.3. Panel 的配置参数可以传入覆盖默认Override defaults with

用jquery-ui的dialog做对话框

js文件: <script src="plugins/jqueryui/jqueryui/jquery-1.9.1.js" type="text/javascript"></script> <link rel="stylesheet" href="plugins/jqueryui/themes/base/jquery.ui.all.css"/> <script src="pl