반응형
프래그먼트에서 리싸이클러뷰를 구현 하기 위해서는 액티비티와는 다르게 구성 해주어야 하는 부분들이 있어 정리 차원 및 정보 전달 차원에서 포스팅 해봅니다. 기본적으로 구현 하는 방법은 같은데, 프래그먼트 내에서 구현하는 방법만 정리 하겠습니다. 리싸이클러뷰 이전편을 참조 바랍니다.
https://rain2002kr.tistory.com/42
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 |