3

我将单活动模式(每个 UI 的片段)与 Android 的 Jetpack 导航一起用于应用程序开发。每个片段代表一个 UI。有什么简单的方法可以禁用后按操作(软/硬件按钮)?

谢谢。

4

1 回答 1

5

尝试类似的东西

class MyFragment : Fragment() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // This callback will only be called when MyFragment is at least Started.
        val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {
            // Handle the back button event
        }

        // The callback can be enabled or disabled here or in the lambda
    }
    ...
}

或者更冗长并更好地控制您的代码:

public class FormEntryFragment extends Fragment {
     @Override
     public void onAttach(@NonNull Context context) {
         super.onAttach(context);
         OnBackPressedCallback callback = new OnBackPressedCallback(
             true // default to enabled
         ) {
             @Override
             public void handleOnBackPressed() {
                 // Handle the back button event
                 // Leave empty do disable back press.
             }
         };
         requireActivity().getOnBackPressedDispatcher().addCallback(
             this, // LifecycleOwner
             callback);
     }
 }

您可以在此处此处的文档中阅读更多信息- 我从那里获取了示例

希望能帮助到你。

于 2019-10-05T22:09:36.463 回答