DialogFragment常见问题(黑色棱角、点击编辑框外关闭软键盘..)

 

1、设置对话框外部的背景为完全透明:

     在onStart()方法中加入以下代码:

@Override
   public void onStart() {
       super.onStart();
       /**
        * 将对话框外部(未被遮挡的部分)的背景设置为透明(必须设置,业务需要)
        */
        Window window = getDialog().getWindow();
        WindowManager.LayoutParams windowParams = window.getAttributes();
        windowParams.dimAmount =BRIGHTNESS_OVERRIDE_OFF;
        window.setAttributes(windowParams);
        setStyle(DialogFragment.STYLE_NORMAL, 
             android.R.style.Theme_Black_NoTitleBar_Fullscreen);
 
   }

2、去掉,弹窗的黑色棱角

     在onViewCreated方法中加入:

    getDialog().getWindow().setBackgroundDrawable(new BitmapDrawable());

3、设置软键盘监听,在DialogFragment中含有EditText时,点击EditText以外的部分,关闭软键盘

    在onViewCreate()方法中加入如下代码:

    

/**
     * 点击非输入框区域时,自动收起键盘
     */
    private void initSoftInputListener() {
        getDialog().getWindow().getDecorView()
                   .setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent event) {
                InputMethodManager manager = (InputMethodManager)getActivity()
                              .getSystemService(Context.INPUT_METHOD_SERVICE);
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    if (getDialog().getCurrentFocus() != null 
                    && getDialog().getCurrentFocus().getWindowToken() != null) {
                          manager.hideSoftInputFromWindow(
                                  getDialog().getCurrentFocus().getWindowToken(), 
                                  InputMethodManager.HIDE_NOT_ALWAYS);
                    }
                }
                return false;
            }
        });
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值