728x90
Fragment 시작합니다!
안드로이드에서 화면을 바꾸는 방법이 두 가지가 있는데
하나는 새로운 액티비티를 띄우는 방식
다른 하나는 액티비티의 일부만 바꾸는 방식(프레그먼트) 이렇게 두 방식이 있습니다.
대표적으로 카카오톡, 인스타그램, 페이스북 등에서 이 방식을 볼 수 있죠..! (대부분의 앱에 이용이 된다고 보면 됩니다.)
액티비티(화면) 전체를 바꾸는 것보다는 일부만 바꾸는 것이 자원 이용량이 적어 속도가 빠르기 때문에 많이 이용됩니다.
자, 이제 프레그먼트를 이용해 화면을 바꿔봅시다!
우선 메인 화면을 구성해줍시다.
activity_main.xml
그 후에는 page 1(frag1.xml), page2(frag2xml), page 3(frag3xml)에 들어갈 화면을 대충 구성해주세요.
그 다음으로는
OneFragment.kt, TwoFragment.kt, ThreeFragment.kt
class OneFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.frag1, container, false)
//frag1과 연결시켜 return해줌.
}
}
class TwoFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.frag2, container, false)
//frag2과 연결시켜 return해줌.
}
}
class ThreeFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.frag3, container, false)
//frag3과 연결시켜 return해줌.
}
}
1, 2, 3프레그먼트마다 1, 2, 3 클래스를 만들어줍시다.
그 후에는 마지막으로 MainActivity를 만들어주면 됩니다!!
MainActivity.kt
btn1.setOnClickListener {
supportFragmentManager.beginTransaction()
.replace(R.id.view, OneFragment())
.commit()
}
// 버튼1을 눌렀을 때 beginTransaction()을 이용해 Fragment를 만들어주고, OneFragment로 대체해준다.
btn2.setOnClickListener {
supportFragmentManager.beginTransaction()
.replace(R.id.view, TwoFragment())
.commit()
}
btn3.setOnClickListener {
supportFragmentManager.beginTransaction()
.replace(R.id.view, ThreeFragment())
.commit()
}
이제 실행해주면..!
<참고한 강의>
developer.android.com/reference/android/view/LayoutInflater
developer.android.com/training/basics/fragments/fragment-ui?hl=ko
<추가로 보면 좋을 android developer>
developer.android.com/guide/fragments/communicate#pass-between-fragments
728x90
'안드로이드' 카테고리의 다른 글
[android] [kotlin] Retrofit을 사용한 로그인 서비스 (0) | 2021.01.06 |
---|---|
[android] [kotlin] TabLayout과 ViewPager사용하기 (0) | 2021.01.06 |
[android] [kotlin] Splash 사용하기 (0) | 2020.12.31 |
[android] [kotlin] toast 메시지 사용하기 (0) | 2020.12.30 |
[android] [kotlin] ListView와 CardView사용하기 (0) | 2020.12.29 |
댓글