美文网首页
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