如何在安卓片段类中禁用按下的后退按钮

2022-09-01 11:11:16

我想禁用片段类中的后退按钮。 似乎在这个片段中不起作用。如何禁用后退按钮?onBackPressed()

这是我的示例代码:

public class Login extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
       ,Bundle savedInstanceState) {
        ViewGroup root = (ViewGroup) inflater.inflate(R.layout.login, null);
        return root;
    }

    public void onBackPressed() {
    }
}

答案 1

您必须重写父 FragmentActivity 类的 onBackPressed。因此,请将代码放在父 FragmentActivity 中。或者,您可以使用以下命令调用父级的方法:

public void callParentMethod(){
    getActivity().onBackPressed();
}

在 FragmentActivity 中覆盖 onBackPressed 方法,而不调用其超类来禁用后退按钮。

@Override
public void onBackPressed() {
  //super.onBackPressed();
  //create a dialog to ask yes no question whether or not the user wants to exit
  ...
}

答案 2

以下是您可以使用新的活动回调来管理分段的新方法:onBackPressed()

    // Disable onBack click
    requireActivity().onBackPressedDispatcher.addCallback(this) {
      // With blank your fragment BackPressed will be disabled.
    }

这是安卓文档链接:https://developer.android.com/reference/androidx/activity/OnBackPressedDispatcher


推荐