@유진
getParentFragmentManager().beginTransaction().add(R.id.**main_container_fragment**, WriteBoardFragment.newInstance("param1", "param2")).addToBackStack(null).commit();
기존 방법) 글 쓰기 버튼 클릭시 글 작성 화면으로 액티비티 전환
변경 방법) MainActivity의 FrameLayout에 해당하는(=프레그먼트에 할당된) 부분 만큼만 전환
메인 액티비티 xml 구조
ㄴ프레임 레이아웃
ㄴ네비 바
프레그먼트1 구조
ㄴ 리사이클러뷰
ㄴ 버튼
프레그먼트2 구조
ㄴ버튼
글 쓰러 가기 버튼 클릭 시, 글 작성 화면으로 넘어감
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initData(view);
//글쓰러 가자
Button goWritebutton = view.findViewById(R.id.btn_goWrite);
goWritebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("Log", "Clicked");
getParentFragmentManager().beginTransaction().add(R.id.main_container_fragment, WriteBoardFragment.newInstance("param1", "param2")).addToBackStack(null).commit();
}
});
}
등록하기 버튼을 누를 시, 이전 화면으로 돌아감
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Button uploadButton = view.findViewById(R.id.btn_uploadBoard);
uploadButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Bundle result = new Bundle();
// result.putString("bundleKey", "from the 2nd fragment");
// getParentFragmentManager().setFragmentResult("requestKey", result);
getParentFragmentManager().beginTransaction().remove(WriteBoardFragment.this).commit();
}
});