android - 片段 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();
解决方案
请确保您在两种布局中使用相同的 id ,因为您在注册侦听器的类中定义了一个 ImageButton 。