大部分文章介绍的禁用返回键方法都只适用于Activity:
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { return true; } return false; }
然后Fragment的资料比较少而且看起来都有够麻烦XD
但是今天爬到这个文!有够快速有够简单!(喜极而泣)
需要注意的是这不是onCreateView!!
直接放在class就可以啦
@Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); getView().setFocusableInTouchMode(true); getView().requestFocus(); getView().setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { if (keyCode == KeyEvent.KEYCODE_BACK) { //go to previous fragemnt //perform your fragment transaction here //pass data as arguments return true; } } return false; } }); }
来源:https://stackoverflow.com/questions/41647583/android-back-button-onkeylistener-inside-fragment-is-not-working