dialog 被另外一个dialog覆盖,生命周期如何执行
1,自定义dialog,在构造方法中设置dialog style,
<style name="CustomDialog" parent="android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item><!--边框-->
<item name="android:windowIsFloating">false</item> <!--是否浮现在activity之上 -->
<item name="android:windowNoTitle">true</item><!--无标题 -->
</style>
2,在oncreate中设置dialog宽度高度,
Window window = getWindow();
window.setContentView(R.layout.dialog_progressbar);//布局
int width = window.getWindowManager().getDefaultDisplay().getWidth();
int height = window.getWindowManager().getDefaultDisplay().getHeight();
window.setLayout(width/2,height/2);
window.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);//居中对齐
3,对第二个对话框坐标变换,第一个对话框默认居中,第二个对话框避免遮挡
public void setLocatoin(){
LogUtil.i("Dialog2.setLocatoin...");
Window window = getWindow();
WindowManager.LayoutParams attributes = window.getAttributes();
int width = window.getWindowManager().getDefaultDisplay().getWidth();
int height = window.getWindowManager().getDefaultDisplay().getHeight();
attributes.x = width/2;
attributes.y = height/2;
attributes.width = width/2;
attributes.height = height/2;
window.setAttributes(attributes);
}
4,
当第二个对话框覆盖在第一个对话框上面时,所执行的生命周期是,(Dialog2 是第一个对话框,Dialog3是第二个对话框打印)
05-27 16:20:07.527 12736-12736/com.tao.asjava I/as_java: Dialog2.onWindowAttributesChanged..
05-27 16:20:07.528 12736-12736/com.tao.asjava I/as_java: Dialog2.onWindowAttributesChanged..
05-27 16:20:07.528 12736-12736/com.tao.asjava I/as_java: Dialog2.onWindowAttributesChanged..
05-27 16:20:07.533 12736-12736/com.tao.asjava I/as_java: Dialog2.onWindowAttributesChanged..
05-27 16:20:07.546 12736-12736/com.tao.asjava I/as_java: Dialog2.onContentChanged..
05-27 16:20:07.548 12736-12736/com.tao.asjava I/as_java: Dialog2.onWindowAttributesChanged..
05-27 16:20:07.549 12736-12736/com.tao.asjava I/as_java: Dialog2.onWindowAttributesChanged..
05-27 16:20:07.550 12736-12736/com.tao.asjava I/as_java: Dialog2.onStart..
--------- beginning of system
05-27 16:20:07.558 12736-12736/com.tao.asjava I/as_java: Dialog2.onAttachedToWindow..
05-27 16:20:07.583 12736-12736/com.tao.asjava I/as_java: Dialog2.onWindowFocusChanged..
05-27 16:20:09.034 12736-12736/com.tao.asjava I/as_java: Dialog3.constructor..
05-27 16:20:09.034 12736-12736/com.tao.asjava I/as_java: Dialog3.setLocatoin...
05-27 16:20:09.037 12736-12736/com.tao.asjava I/as_java: Dialog3.onCreate..
05-27 16:20:09.043 12736-12736/com.tao.asjava I/as_java: Dialog3.onStart..
05-27 16:20:09.052 12736-12736/com.tao.asjava I/as_java: Dialog3.onAttachedToWindow..
05-27 16:20:09.088 12736-12736/com.tao.asjava I/as_java: Dialog3.onWindowFocusChanged..
05-27 16:20:09.101 12736-12736/com.tao.asjava I/as_java: Dialog2.onWindowFocusChanged..
05-27 16:21:32.968 12736-12736/com.tao.asjava I/as_java: Dialog2.onWindowFocusChanged..
05-27 16:21:37.958 12736-12736/com.tao.asjava I/as_java: Dialog2.onDetachedFromWindow..
05-27 16:21:37.964 12736-12736/com.tao.asjava I/as_java: Dialog2.onStop..