MainActivity에 BottomNavigationView가 정의되어 있고, Fragment①에서 Fragment②로 이동할 때 BottomNavigation을 숨기고자 한다. → Fragment②에서 작업해주면 된다.
불린값을 파라미터로 받는 hideBottomNavigationView 메소드를 정의하고
getActivity().findViewById(R.id.~)로 Actibity의 BottomNavigationView를 받아온 뒤
불린값이 true이면 setVisibility 속성을 GONE으로 설정해서 내비게이션을 숨기고,
불린값이 false이면 setVisibility 속성을 VISIBLE로 설정해서 내비게이션을 다시 보이게 한다.
onCreateView에서는 hideBottomNavigationView(true)를 부르고
onDestroyView에서는 hideBottomNavigationView(false)를 부르면
이 Fragment에서만 내비게이션을 숨기고, 이 Fragment에서 벗어나면 다시 내비게이션이 보이게 된다.
public class ChatFragment extends Fragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_chat, container, false);
hideBottomNavigation(true);
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
hideBottomNavigation(false);
}
public void hideBottomNavigation(Boolean bool) {
BottomNavigationView bottomNavigation = getActivity().findViewById(R.id.bottomNavigation);
if (bool == true)
bottomNavigation.setVisibility(View.GONE);
else
bottomNavigation.setVisibility(View.VISIBLE);
}
}