본문 바로가기
프래그먼트 (Fragment) - 3. 통신 MainActivity는 ToolbarFragment와 TextFragment 2개로 이루어져있다. ToolbarFragment안의 EditText 안에 텍스트를 입력, Seekbar로 텍스트의 크기를 조절하고 Change Text 버튼을 클릭하면 TextFragment의 TextView가 변한다. Fragment의 통신 Activity가 Fragment를 찾을 땐 findViewById 메소드로 Fragment의 id를 참조하면 되지만, 그 반대의 경우 Fragment끼리 통신할 수 없고 Fragment가 포함된 Activity(hosting)를 거쳐야 한다. 통신 방법 1. Fragment에서 Interface 선언 (안에 추상메소드 구현) 2. Activity(hosting)에서 상속. 구현은 이따.. 2021. 11. 25.
프래그먼트 (Fragment) - 2. 동적 교체 Fragment 동적 교체 0. Fragment를 삽입할 컨테이너 선언(FrameLayout) 1. FragmentManager 객체 (supportFragmentManager)를 생성한 다음, 이 객체의 beginTransaction 메소드를 호출 2. Activity 레이아웃에 Fragment 추가. 변경된 결과를 반영하려면 commit() 메소드 호출 * savedInstanceState != null -> 무언가 가지고 있으면 건드리지 마 (이번 작업에선 필요 없음) * addToBackStack -> Back 버튼을 누른 상황을 고려한 것. -> Back 버튼을 누르면 이전 fragment를 복원할 것인가? (null이면 back stack에 저장하지 않고 폐기) * beginTransactio.. 2021. 11. 25.
프래그먼트 (Fragment) - 1 LinearLayout과 겉보기에 차이는 없지만 Fragment는 독립적인 Activity로 이벤트 처리가 가능하다. * 다른 Activity에 재사용 가능 * 독립적이지만 Activity에 종속 (Activity가 죽으면 같이 죽음) * 자신만의 Lifecycle, Layout을 가지고 있음 * Activity 실행 중 삽입, 제거 가능 onCreateView()는 화면을 구성할 때 호출되며 대부분의 코드를 여기에 작성함 Fragment 만들기 -> 일반적인 Activity는 setContentView 에서 Layout을 객체화 시켰다면, Fragment는 LayoutInflater(Inflate Method)를 사용해서 화면에 보여준다. Inflater 객체는 CallbackMethod onCreat.. 2021. 11. 24.