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;
}
});
}