博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 自定义AlertDialog的写法和弹出软键盘和覆盖状态栏
阅读量:5985 次
发布时间:2019-06-20

本文共 1998 字,大约阅读时间需要 6 分钟。

private void showMyDialog(int layoutId){      AlertDialog myDialog = new      AlertDialog.Builder(context).create();      myDialog.show();      Window window = myDialog.getWindow();      window.setContentView(layoutId);      window.setGravity(Gravity.CENTER);      window.setLayout(LayoutParams.MATCH_PARENT,          LayoutParams.WRAP_CONTENT); }

方法 2 

private void showMyDialog(int layoutId){     LayoutInflater inflater = LayoutInflater.from(mContext);     View fourView = inflater.inflate(layoutId, null);     AlertDialog myDialog = new                 AlertDialog.Builder(context).create();     myDialog.show();     myDialog.getWindow().setContentView(fourView); }

以上二种方法都可以自定义Dialog,并且效果还不错,但是如果Dialog里面有EditText就会遇到一个问题,怎么样 

都打不开软键盘,也就无法输入,如果碰到这种情况的话,请看第三种写法: 
方法 3 

private void showMyDialog(int layoutId){     LayoutInflater inflater = LayoutInflater.from(mContext);     View fourView = inflater.inflate(layoutId, null);     AlertDialog myDialog = new     AlertDialog.Builder(context).create();     //加上以下这句代码     myDialog.setView(((Activity)         mContext).getLayoutInflater().inflate(layoutId, null))     myDialog.show();     myDialog.getWindow().setContentView(fourView); }

全屏覆盖状态栏显示加上以下代码: 

window.setType(WindowManager.LayoutParams.TYPE_APPLICATION_PANEL); window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

弹出软键盘:

window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(passwordEt, InputMethodManager.SHOW_FORCED);

隐藏软键盘:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(mPasswordInputEt.getWindowToken(),0);

 

转载地址:http://jwylx.baihongyu.com/

你可能感兴趣的文章
京东酝酿促销战 新电商价格大战猜想
查看>>
Mac终端命令
查看>>
修改npm全局安装的位置
查看>>
itext 7 sign pom文件
查看>>
作为首席架构师,我是如何选择并落地架构方案的?
查看>>
20161205 猎豹收藏夹
查看>>
服务器端口
查看>>
Js对字符串和数组的基本操作
查看>>
Zxing 二维码扫描
查看>>
VB调用QTP
查看>>
react学习01---- 开发环境搭建之项目初始化
查看>>
非常好用的vsphere环境的查看工具
查看>>
PHP利用Gearman来处理并行多进程问题
查看>>
Solaris 10(x86)构建Oracle 10g RAC之--配置系统环境(1)
查看>>
C# 程序针对指定错误号的异常进行拦截处理
查看>>
C#编码规范
查看>>
重启,关机命令
查看>>
各种经典布局--“国”字布局
查看>>
jboss启动报错
查看>>
程序员究竟该如何提高效率
查看>>