首页 > 解决方案 > 片段 onClickListener 未注册点击

问题描述

我已经浏览了 SO 上的所有搜索结果,但找不到可以解决我的问题的搜索结果。我有一个片段,我正在尝试使用 ImageButton 来关闭片段。但我的 onClickListener 不会注册点击。我在线上放置了一个断点,它从未被击中。

ImageButton closeButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView;
    if (getArguments().getBoolean("invert") == true) {
        rootView = inflater.inflate(R.layout.popup_inverted_header_and_text, container, false);
    }else {
        rootView = inflater.inflate(R.layout.popup_header_and_text, container, false);
    }
    rootView.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    closeButton = (ImageButton) rootView.findViewById(R.id.closeButton);
    closeButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getActivity().getFragmentManager().popBackStackImmediate();
        }
    });
    return rootView;
}

根据我的研究,将片段添加到视图的方式可能会影响这一点,所以这是我添加片段的代码。

FragmentManager fragmentManager = getFragmentManager();
    headerAndTextFragment hatf = headerAndTextFragment
            .newInstance("Information on GlassFrogg review process",
                        "Here is some information about the review process that you probably didn't actually want to know",
                        true);
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.replace(R.id.popupContainer, hatf);
    transaction.addToBackStack(null).commit();

标签: androidandroid-fragmentsonclicklistener

解决方案


请确保您在两种布局中使用相同的 id ,因为您在注册侦听器的类中定义了一个 ImageButton 。


推荐阅读