반응형
프래그먼트에서 리싸이클러뷰를 구현 하기 위해서는 액티비티와는 다르게 구성 해주어야 하는 부분들이 있어 정리 차원 및 정보 전달 차원에서 포스팅 해봅니다. 기본적으로 구현 하는 방법은 같은데, 프래그먼트 내에서 구현하는 방법만 정리 하겠습니다. 리싸이클러뷰 이전편을 참조 바랍니다.
https://rain2002kr.tistory.com/42
[Kotlin] 리싸이클러뷰 : recyclerView 적용
자바에서 리싸이클러뷰를 구현하는 방법에 대해 포스팅 해놓은것이 있으나, 코틀린이라는 언어적 장점으로 비교적 간단한 방법으로 리싸이클러뷰를 구현 할수 있습니다. 코틀린 언어적 설명보다 지금 당장 구현 할..
rain2002kr.tistory.com
1. 프래그먼트 구성
class MainFragment : Fragment() {
val TAG = "MainFragment"
private val recyclerview_main_screen: RecyclerView by lazy {
view?.findViewById(R.id.recyclerview_main_screen) as RecyclerView
}
private val list by lazy {
mutableListOf<MainViewModel>(
MainViewModel(R.drawable.network, "전송 리스트","자동 문자 전송 정보를 저장하는 화면입니다."),
MainViewModel(R.drawable.log, "전송 내역","자동 전송된 문자 내역을 확인하는 화면입니다."),
MainViewModel(R.drawable.sms, "문자 보내기","문자를 전송 할수 있는 화면입니다."),
MainViewModel(R.drawable.info, "정보","버전을 확인 할수 있습니다.")
)
}
private lateinit var mainAdapter : MainViewAdapter
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_main, container, false)
return view
}
//onViewCreated 에서 구현
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
recyclerview_main_screen.setHasFixedSize(true) //lazy 접근
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
recyclerview_main_screen.layoutManager = LinearLayoutManager(context)
}
val mainViewAdapter = MainViewAdapter(requireContext(), R.layout.sub_main_view, list)
mainViewAdapter.setItemClickListener(object : MainViewAdapter.ItemClickListener{
override fun onClick(view: View, position: Int) {
Log.d(TAG , "${position}번 리스트 선택")
when(position){
0 -> (activity as MainActivity).changeFragment(REGIST_FRAG)
1 -> (activity as MainActivity).changeFragment(LOG_FRAG)
2 -> (activity as MainActivity).changeFragment(SEND_FRAG)
3 -> Toast.makeText(context,"버전 : 2020.01.29 ver01",Toast.LENGTH_LONG).show()
}
}
})
recyclerview_main_screen.apply {
this.adapter = mainViewAdapter
setHasFixedSize(true)
val gridLayout = GridLayoutManager(context,1 )
layoutManager = gridLayout
}
}
}
'안드로이드 프로그래밍[Kotiln Code] > 리싸이클러뷰' 카테고리의 다른 글
[Kotlin] 리싸이클러뷰 : recyclerView 역순 출력하기 (2) | 2020.06.04 |
---|---|
[Kotlin] 리싸이클러뷰 : recyclerView 적용 (0) | 2020.01.30 |