美文网首页
fragment当activity中,toolbar 处理返回键

fragment当activity中,toolbar 处理返回键

作者: 吉凶以情迁 | 来源:发表于2023-06-18 13:34 被阅读0次

    由于channel gradle渠道编译的特点模块可以定义不同的androidmefest.xml, activity,但是主app模块的channel不同分支无法设置
    ,所以考虑研究直接用fragment来做,但是 原来的事material design 是有toolbar的
    因此进行了研究。
    需要在onCreate中设置
    布局中用toolbar的情况onCreateOptionsMenu不会触发,
    返回事件不会在onOptionSelect触发需要直接根据toolbar设置setNavigationOnClickListener事件

    onViewCreated

    public class ExampleFragment extends Fragment {
        ...
    
       @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setHasOptionsMenu(true);
        }
        @Override
        public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
            ...
            viewBinding.myToolbar.inflateMenu(R.menu.sample_menu);
      viewBinding.myToolbar.setNavigationIcon(R.drawable.ic_back);
            viewBinding.myToolbar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // Navigate somewhere.
                }
            });
        }
    
    }
    

    处理返回
    onCreate

    onBackPressedCallback=new OnBackPressedCallback(true) {
    
                @Override
                public void handleOnBackPressed() {
                    AppRouteUtilX.showConfimExitHomeDialog(requireActivity());
                }
            };
            requireActivity().getOnBackPressedDispatcher().addCallback(this, onBackPressedCallback);
    

    在onDestory中移除即可
    onBackPressedCallback.remove();

    相关文章

      网友评论

          本文标题:fragment当activity中,toolbar 处理返回键

          本文链接:https://www.haomeiwen.com/subject/ekzjydtx.html