当前位置:   article > 正文

android指定位置的dialog弹出显示_android 日历弹框datepickerdialog显示在指定位置

android 日历弹框datepickerdialog显示在指定位置
  1. void showDemo(View view, String text){
  2. commomDialog.setListener(new CommomDialog.OnCloseListener() {
  3. @Override
  4. public void onClick(Dialog dialog, boolean confirm) {
  5. dialog.dismiss();
  6. }
  7. });
  8. commomDialog.setContent(text);
  9. commomDialog.setTitle("提示信息");
  10. commomDialog.getWindow();
  11. commomDialog.setCanceledOnTouchOutside(false);
  12. //获取当前Activity所在的窗体
  13. Window window = commomDialog.getWindow();
  14. WindowManager.LayoutParams wlp = window.getAttributes();
  15. //获取通知栏高度 重要的在这,获取到通知栏高度
  16. int notificationBar = Resources.getSystem().getDimensionPixelSize(Resources.getSystem().getIdentifier("status_bar_height", "dimen", "android"));
  17. //获取控件 textview 的绝对坐标,( y 轴坐标是控件上部到屏幕最顶部(不包括控件本身))
  18. //location [0] 为x绝对坐标;location [1] 为y绝对坐标
  19. int[] location = new int[2] ;
  20. //获取在当前窗体内的绝对坐标
  21. view.getLocationInWindow(location);
  22. //获取在整个屏幕内的绝对坐标
  23. view.getLocationOnScreen(location);
  24. //对 dialog 设置 x 轴坐标
  25. wlp.x= (int) (location[0]-(view.getWidth()/1.5));
  26. //对dialog设置y轴坐标
  27. wlp.y = location [1] + view.getHeight() - notificationBar;
  28. wlp.gravity = Gravity.TOP;
  29. wlp.width = 400;
  30. wlp.height = WindowManager.LayoutParams.WRAP_CONTENT;
  31. window.setAttributes(wlp);
  32. commomDialog.show();
  33. }

弹出框创建我就不贴了,该方法传入要显示的UI控件,比如LinearLayout.就会显示在该控件下面。

  1. new Handler().postDelayed(new Runnable() {
  2. @Override
  3. public void run() {
  4. if(commomDialog!=null&&commomDialog.isShowing()){
  5. commomDialog.dismiss();
  6. }
  7. }
  8. }, 1000*60);

上面代码是定时器代码,指定dialog一分钟后消失。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/271259
推荐阅读
相关标签
  

闽ICP备14008679号