반응형
이전 BaseActivity에 이이서 BaseFragment에 대해서 설명 드리겠습니다.
BaseActivity는 아래 링크를 확인해주세요.
BaseFragment도 반복적이고 공통적인 코드를 조금이나마 재사용과 간결하게 하기위해서 사용합니다.
<BaseFragment>
abstract class BaseFragment<T: ViewDataBinding>(@LayoutRes private val layoutId: Int): Fragment() {
protected lateinit var binding: T
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = DataBindingUtil.inflate(inflater, layoutId, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initView()
initViewModel()
initListener()
afterViewCreated()
}
protected open fun initView() {}
protected open fun initViewModel() {}
protected open fun initListener() {}
protected open fun afterViewCreated() {}
}
위와 같이 layout을 생성하고, 각각의 초기화 함수들을 호출해 주는 BaseFragment입니다.
사용은 아래 코드와 같이 Fragment에서 상속을 받아서 사용합니다.
class TestFragment: BaseFragment<FragmentTestBinding>(R.layout.fragment_test) {
override fun initView() {
super.initView()
binding.apply {
// TODO.
}
}
}
실행시 아래와 같은 화면을 보실수 있습니다.
상세한 소스 코드는 아래 GitHub 링크를 확인해 주세요.
반응형
'Android + Kotlin' 카테고리의 다른 글
Koin + MVVM + Coroutine + Flow 를 이용한 상세화면 만들기 (1) | 2022.01.02 |
---|---|
Android 프로젝트에 Vector Image(SVG) 추가하기 (0) | 2021.12.30 |
DataBinding을 결합한 BaseActivity 만들기 (0) | 2021.12.28 |
[Android] Ripple Effect 라운드 버튼 만들기 (0) | 2021.12.27 |
[Crashlytics] 외부 브라우저 연동시 SecurityException 수정 (0) | 2021.12.23 |