我希望隐藏编辑文本的错误信息,当新片段添加到当前片段之上时,但是当在同一活动中添加新片段时,不会调用当前片段的方法。
感谢。
我只想隐藏在fragmentA上添加的EditText视图的错误消息,如下所示。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.um_fragment_nav_signup_frag, container, false);
mobileNumEditText= (EditText) view.findViewById(R.id.et_nav_mobile);
mobileNumEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
mobileNumEditText.setError(null);
}
});
return view;
}
@Override
public void onHiddenChanged(boolean hidden) {
mobileNumEditText.setError(null);
super.onHiddenChanged(hidden);
}
@Override
public void onPause() {
mobileNumEditText.setError(null);
super.onPause();
}
但是在使用给定方法在Same活动中添加另一个片段(FragmentB)时调用了这些方法。
@Override
public final void addFragment(Fragment fragment, int containerId,
boolean addToBackStack) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(containerId, fragment, fragment.getClass().getSimpleName());
if (addToBackStack) {
ft.addToBackStack(null);
}
ft.commit();
}
答案 0 :(得分:0)
请浏览fragment lifecycle并自行查看。
我建议你覆盖片段中的所有片段生命周期方法,并在每个方法中放置断点并自行检查。
答案 1 :(得分:0)
如果我理解正确,你正在寻找onPause()方法,该方法被替换为另一个的片段调用。
答案 2 :(得分:0)
当前碎片只有在被移除或更换时才会受到影响。简单地添加新片段只会在当前片段上显示新片段,并且不会调用当前片段的生命周期方法。
根据您的问题,最好在执行片段事务之前隐藏编辑文本的错误消息。
退房 - https://androidlearnersite.wordpress.com/2017/02/27/fragment-lifecycle-during-fragment-transaction/