Far*_*zad 5 android android-fragments android-dialogfragment
当我的对话片段是hide,dispatchKeyEvent工作正常
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
Toast.makeText(FragmentPlayer.this, "test: called", Toast.LENGTH_SHORT).show();
return super.dispatchKeyEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
但是当我的对话片段是show,dispatchKeyEvent没有被调用
MyDialogFragment mFragment = new MyDialogFragment();
mFragment.show(getSupportFragmentManager(), "MyDialog");
Run Code Online (Sandbox Code Playgroud)
为什么?
无需将DialogFragment代码更改为Dialog,您可以执行以下操作(如果仍然需要)。使用OnKeyListener将解决您的问题。
public class BaseDialogFragment extends AppCompatDialogFragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getDialog().setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
/* Your logic, you get the KeyEvent*/
return false;
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3045 次 |
| 最近记录: |