如何确定按下后退按钮

时间:2019-04-07 14:47:41

标签: android android-navigation android-architecture-navigation

我正在使用android导航组件库。我用导航图设置了两个片段。我想在片段内部按下后退按钮时执行一些其他操作。

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    return NavigationUI.onNavDestinationSelected(item, view!!.findNavController())
           || super.onOptionsItemSelected(item)
}

我使用此代码来处理工具栏上的按钮单击,但是我也想处理后退按钮的按压。我该怎么办?

2 个答案:

答案 0 :(得分:0)

这是onBackPessed的另一个替代

back press

答案 1 :(得分:0)

示例:

public class MyFragment extends Fragment {

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // This callback will only be called when MyFragment is at least Started.
        OnBackPressedCallback callback = new OnBackPressedCallback(true /* enabled by default */) {
            @Override
            public boolean handleOnBackPressed() {
                // Handle the back button event
            }
        });
        requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);

        // The callback can be enabled or disabled here or in handleOnBackPressed()
    }
    ...
}

Android官方指南中的更多说明:Provide custom back navigation