abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel> : Fragment
MVVM 디자인 패턴을 구축할 때 사용한 기본 Fragment 클래스입니다.
BaseFragment()
MVVM 디자인 패턴을 구축할 때 사용한 기본 Fragment 클래스입니다. |
var mActivity: BaseActivity<*, *>?
상위 액티비티입니다. |
|
lateinit var mViewDataBinding: T
데이터바인딩 객체입니다. |
fun getBaseActivity(): BaseActivity<*, *>?
본 Fragment 를 사용하는 상위 Activity 를 가져옵니다. |
|
abstract fun getBindingVariable(): Int
BR 에서 viewModel 로 옵션을 잡아 반환하는 추상 메소드입니다. |
|
abstract fun getLayoutId(): Int
프래그먼트와 연결할 Layout 의 Id를 반환하는 추상 메소드입니다. |
|
abstract fun getViewModel(): V
|
|
open fun onAttach(context: Context): Unit
Fragment 생명주기 onAttach 에 다음의 내용을 실행합니다. Context 가 BaseActivity 일 경우 상위 액티비티에 Context 를 저장합니다 |
|
open fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View?
Fragment 생명주기 onCreateView 에 다음의 내용을 실행합니다. DataBindingUtil 로부터 지정한 레이아웃 파일에 맞는 DataBinding 객체를 가져와서 저장합니다. |
|
open fun onDetach(): Unit
상위 액티비티와의 연결을 제거합니다. |
|
open fun onViewCreated(view: View, savedInstanceState: Bundle?): Unit
Fragment 생명주기 onViewCreated 에 다음의 내용을 실행합니다. 데이터 바인딩에 Binding 변수와 뷰 모델을 지정하고 생명주기 관리자를 본 프래그먼트로 지정합니다. |
|
abstract fun setUp(): Unit
onViewCreated 작업 이후에 실행되는 추상 메소드입니다. 프래그먼트가 모든 작동준비를 마친 후에 실행됩니다. |
class ImageDetailFragment : BaseFragment<FragmentImageDetailBinding, ImageDetailViewModel>
선택한 이미지의 상세한 내용을 보여주는 프래그먼트입니다. 이미지 원본과 이미지가 게시된 웹 페이지를 표시해주는 WebView, 그리고 공유, 정보, 다운로드 3개의 FAB 로 구성되어 있습니다. |
|
class ImageListFragment : BaseFragment<FragmentImageListBinding, ImageListViewModel>
검색한 이미지들을 Grid 로 뿌려주는 프래그먼트입니다. 페이지간 이동 버튼과 Recycler View 등으로 구성되어 있습니다. |