Kotlin 기초#9 Fragment
안녕하세요 조금은 오랜만이겠네요.
오늘은 Fragment에 대해 다룰예정입니다. 앱개발자라면 당연히 아시겠지만,
기초가 중요하다는거 다들 아시죠? 오늘은 기초부터 파헤쳐 봅시다!
💕 1. Fragment 쉽게 이해하자.
하나의 Activty는 Lifecycle구조를 가지고 있습니다.
저는 오늘 카카오톡을 배포하기로 했습니다.
왼쪽 레이아웃 -> 카카오톡 대화창
오른쪽 레이아웃 -> 카카오톡 쇼핑창
Tablet은 화면이 크기 때문에 이것이 가능했습니다.😁😁
하지만 화면이 작은 핸드폰 같은 경우, 따로 보여줘만합니다.
이럴때 Activity를 나누는게 아니라 따로 분리해서 다룬다면 어떨까요?
레이아웃 1 -> 카카오톡 대화창
레이아웃 2 -> 카카오톡 쇼핑창
이걸 테블릿 사이즈에선 붙여버리는겁니다. 그러면 중복된 레이아웃을 만들지 않아도 되겠네요.
이렇게 Fragment는 탄생했습니다.
🚀 2. Fragment 넣기
일단 Activity에서 확인하겠습니다.
//바인딩 작성
val binding by lazy{ActivityMainBinding.inflate(layoutInflater)
val listFragment by lazy{ListFragment()}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
setFragment()
}
fun setFragment(){
// 1. 사용할 프래그먼트 생성
listFragment = ListFragment()
// 2. 트랜잭션 생성
val transaction = suppotFragmentManager.beginTransaction()
// 3. 트랜잭션을 통해 프래그먼트 삽입
transaction.add(R.id.frameLayout, listFragment)
//detail이라는 이름으로 스택이 쌓인다.
transaction.addToBackStack("detail")
transaction.commit()
}
🧇 3. Fragment 생성
Fragment에서 메인 액티비티에 닿을수 있다.
class DetailFragment : Fragment() {
lateinit var mainActivity: MainActivity
lateinit var binding: FragmentDetailBinding
//fragment에서 mainActivity에 닿는 방법
override fun onAttach(context: Context) {
super.onAttach(context)
if (context is MainActivity) mainActivity = context
}
//바인딩을 사용했을때 맵핑하는 방법이다.
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentDetailBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnback.setOnClickListener() {
mainActivity.goBack()
}
}
}
🍳 4. Fragment 지우기
BackStack을 추가했을경우, 뒤로가기를 하면 현재의 Fragment는 사라집니다.
가령 버튼으로 이렇게 넣을수도 있습니다.
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.btnnext.setOnClickListener() {
onBackPressed()
}
}
Author And Source
이 문제에 관하여(Kotlin 기초#9 Fragment), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@vov3616/Kotlin-기초9-Fragment저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)