@@ -481,44 +481,135 @@ protected void showProgressDialog(View v,boolean isCancel){
481
481
mProgressDialog .show ();
482
482
}
483
483
484
+ /**
485
+ * 显示对话框
486
+ * @param contentView 弹框内容视图
487
+ */
484
488
protected void showDialog (View contentView ){
485
489
showDialog (contentView ,DEFAULT_WIDTH_RATIO );
486
490
}
487
491
492
+ /**
493
+ * 显示对话框
494
+ * @param contentView 弹框内容视图
495
+ * @param isCancel 是否可取消(默认为true,false则拦截back键)
496
+ */
488
497
protected void showDialog (View contentView ,boolean isCancel ){
489
498
showDialog (getContext (),contentView ,R .style .mvvmframe_dialog ,DEFAULT_WIDTH_RATIO ,isCancel );
490
499
}
491
500
501
+ /**
502
+ * 显示对话框
503
+ * @param contentView 弹框内容视图
504
+ * @param widthRatio 宽度比例,根据屏幕宽度计算得来
505
+ */
492
506
protected void showDialog (View contentView ,float widthRatio ){
493
507
showDialog (getContext (),contentView ,widthRatio );
494
508
}
495
509
510
+ /**
511
+ * 显示对话框
512
+ * @param contentView 弹框内容视图
513
+ * @param widthRatio 宽度比例,根据屏幕宽度计算得来
514
+ */
496
515
protected void showDialog (View contentView ,float widthRatio ,boolean isCancel ){
497
516
showDialog (getContext (),contentView ,R .style .mvvmframe_dialog ,widthRatio ,isCancel );
498
517
}
499
518
519
+ /**
520
+ * 显示对话框
521
+ * @param context
522
+ * @param contentView 弹框内容视图
523
+ * @param widthRatio 宽度比例,根据屏幕宽度计算得来
524
+ */
500
525
protected void showDialog (Context context ,View contentView ,float widthRatio ){
501
526
showDialog (context ,contentView , R .style .mvvmframe_dialog ,widthRatio );
502
527
}
503
528
529
+ /**
530
+ * 显示对话框
531
+ * @param context
532
+ * @param contentView 弹框内容视图
533
+ * @param styleId Dialog样式
534
+ * @param widthRatio 宽度比例,根据屏幕宽度计算得来
535
+ */
504
536
protected void showDialog (Context context , View contentView , @ StyleRes int styleId , float widthRatio ){
505
537
showDialog (context ,contentView ,styleId ,widthRatio ,true );
506
538
}
507
539
540
+ /**
541
+ * 显示对话框
542
+ * @param context
543
+ * @param contentView 弹框内容视图
544
+ * @param styleId Dialog样式
545
+ * @param widthRatio 宽度比例,根据屏幕宽度计算得来
546
+ * @param isCancel 是否可取消(默认为true,false则拦截back键)
547
+ */
508
548
protected void showDialog (Context context , View contentView , @ StyleRes int styleId , float widthRatio , final boolean isCancel ){
509
549
showDialog (context , contentView , styleId , Gravity .NO_GRAVITY , widthRatio , isCancel );
510
550
511
551
}
512
552
553
+ /**
554
+ * 显示对话框
555
+ * @param context
556
+ * @param contentView 弹框内容视图
557
+ * @param styleId Dialog样式
558
+ * @param gravity Dialog的对齐方式
559
+ * @param widthRatio 宽度比例,根据屏幕宽度计算得来
560
+ * @param isCancel 是否可取消(默认为true,false则拦截back键)
561
+ */
513
562
protected void showDialog (Context context , View contentView , @ StyleRes int styleId , int gravity , float widthRatio , final boolean isCancel ){
514
563
showDialog (context , contentView , styleId , gravity , widthRatio , 0 , 0 , isCancel );
515
564
}
565
+ /**
566
+ * 显示对话框
567
+ * @param context
568
+ * @param contentView 弹框内容视图
569
+ * @param styleId Dialog样式
570
+ * @param gravity Dialog的对齐方式
571
+ * @param widthRatio 宽度比例,根据屏幕宽度计算得来
572
+ * @param x x轴偏移量,需与 gravity 结合使用
573
+ * @param y y轴偏移量,需与 gravity 结合使用
574
+ * @param isCancel 是否可取消(默认为true,false则拦截back键)
575
+ */
576
+ protected void showDialog (Context context , View contentView , @ StyleRes int styleId , int gravity , float widthRatio , int x , int y , final boolean isCancel ){
577
+ showDialog (context , contentView , styleId , gravity , widthRatio , x , y , 0 , 0 , isCancel );
578
+ }
516
579
517
- protected void showDialog (Context context , View contentView , @ StyleRes int styleId , int gravity , float widthRatio ,float horizontalMargin , float verticalMargin , final boolean isCancel ){
518
- showDialog (context , contentView , styleId , gravity , widthRatio , horizontalMargin , verticalMargin , 0 , 0 , isCancel );
580
+ /**
581
+ * 显示对话框
582
+ * @param context
583
+ * @param contentView 弹框内容视图
584
+ * @param styleId Dialog样式
585
+ * @param gravity Dialog的对齐方式
586
+ * @param widthRatio 宽度比例,根据屏幕宽度计算得来
587
+ * @param x x轴偏移量,需与 gravity 结合使用
588
+ * @param y y轴偏移量,需与 gravity 结合使用
589
+ * @param horizontalMargin 水平方向边距
590
+ * @param verticalMargin 垂直方向边距
591
+ * @param isCancel 是否可取消(默认为true,false则拦截back键)
592
+ */
593
+ protected void showDialog (Context context , View contentView , @ StyleRes int styleId , int gravity , float widthRatio , int x , int y , float horizontalMargin , float verticalMargin , final boolean isCancel ){
594
+ showDialog (context , contentView , styleId , gravity , widthRatio , x , y , horizontalMargin , verticalMargin , 0 , 0 , isCancel );
519
595
}
520
596
521
- protected void showDialog (Context context , View contentView , @ StyleRes int styleId , int gravity , float widthRatio ,float horizontalMargin , float verticalMargin , float horizontalWeight , float verticalWeight , final boolean isCancel ){
597
+ /**
598
+ * 显示对话框
599
+ * @param context
600
+ * @param contentView 弹框内容视图
601
+ * @param styleId Dialog样式
602
+ * @param gravity Dialog的对齐方式
603
+ * @param widthRatio 宽度比例,根据屏幕宽度计算得来
604
+ * @param x x轴偏移量,需与 gravity 结合使用
605
+ * @param y y轴偏移量,需与 gravity 结合使用
606
+ * @param horizontalMargin 水平方向边距
607
+ * @param verticalMargin 垂直方向边距
608
+ * @param horizontalWeight 水平方向权重
609
+ * @param verticalWeight 垂直方向权重
610
+ * @param isCancel 是否可取消(默认为true,false则拦截back键)
611
+ */
612
+ protected void showDialog (Context context , View contentView , @ StyleRes int styleId , int gravity , float widthRatio , int x , int y , float horizontalMargin , float verticalMargin , float horizontalWeight , float verticalWeight , final boolean isCancel ){
522
613
dismissDialog ();
523
614
mDialog = new Dialog (context , styleId );
524
615
mDialog .setContentView (contentView );
@@ -536,16 +627,29 @@ public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
536
627
537
628
}
538
629
});
539
- setWindow (mDialog .getWindow (),gravity , widthRatio ,horizontalMargin , verticalMargin , horizontalWeight , verticalWeight );
630
+ setWindow (mDialog .getWindow (),gravity , widthRatio , x , y , horizontalMargin , verticalMargin , horizontalWeight , verticalWeight );
540
631
mDialog .show ();
541
632
542
633
}
543
634
544
-
545
- protected void setWindow (Window window ,int gravity ,float widthRatio , float horizontalMargin , float verticalMargin , float horizontalWeight , float verticalWeight ){
635
+ /**
636
+ * 设置 Window 布局相关参数
637
+ * @param window {@link Window}
638
+ * @param gravity Dialog的对齐方式
639
+ * @param widthRatio 宽度比例,根据屏幕宽度计算得来
640
+ * @param x x轴偏移量,需与 gravity 结合使用
641
+ * @param y y轴偏移量,需与 gravity 结合使用
642
+ * @param horizontalMargin 水平方向边距
643
+ * @param verticalMargin 垂直方向边距
644
+ * @param horizontalWeight 水平方向权重
645
+ * @param verticalWeight 垂直方向权重
646
+ */
647
+ protected void setWindow (Window window ,int gravity ,float widthRatio , int x , int y , float horizontalMargin , float verticalMargin , float horizontalWeight , float verticalWeight ){
546
648
WindowManager .LayoutParams lp = window .getAttributes ();
547
649
lp .width = (int )(getWidthPixels () * widthRatio );
548
650
lp .gravity = gravity ;
651
+ lp .x = x ;
652
+ lp .y = y ;
549
653
lp .horizontalMargin = horizontalMargin ;
550
654
lp .verticalMargin = verticalMargin ;
551
655
lp .horizontalWeight = horizontalWeight ;
0 commit comments