DialogFragment的一些问题
程序员文章站
2022-04-09 22:21:39
...
dialogFragment投入使用有几个月了,今天因为功能的原因需要设置dismiss监听,在onCreateDialog中给dialog设置的监听,结果运行时监听不到?
经过打log发现dismiss的时候没有走dismiss和dialog的DialogInterface.OnDismissListener,而是直接走了onDestroy?
@Override
public void dismiss() {
super.dismiss();
LogUtil.i("GisFragment","dismiss"); //压根没走
}
@Override
public void onDestroy() {
super.onDestroy();
mListener.close();
LogUtil.i("GisFragment","destory");//走了
}
好吧,结论是在onDestroy中调用了方法回传了关闭信息
然后发现有网友说起监听onKeyDown的问题,经过测试发现有用,留存一下:在onCreateView中加入this.getDialog().setOnKeyListener()
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
this.getDialog().setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if(keyCode ==KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME){
return true;
}else {
return false;
}
}
});
}
上一篇: Servlet的一些问题