zoukankan      html  css  js  c++  java
  • Android 自定义AlertDialog的写法和弹出软键盘和覆盖状态栏

    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);
  • 相关阅读:
    LeetCode 123. Best Time to Buy and Sell Stock III (stock problem)
    精帖转载(关于stock problem)
    LeetCode 122. Best Time to Buy and Sell Stock II (stock problem)
    LeetCode 121. Best Time to Buy and Sell Stock (stock problem)
    LeetCode 120. Triangle
    基于docker 搭建Elasticsearch5.6.4 分布式集群
    从零开始构建一个centos+jdk7+tomcat7的docker镜像文件
    Harbor实现容器镜像仓库的管理和运维
    docker中制作自己的JDK+tomcat镜像
    docker镜像制作---jdk7+tomcat7基础镜像
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/9681115.html
Copyright © 2011-2022 走看看