Adapter
[JETPACK개론] View,DataBinding + Adapter
ViewBinding + Adapter view(Acitivty, Fragment)뿐만 아니라 Adapter에서도 ViewBinding을 사용할 수 있다. 먼저, Adapter를 사용하는 리사이클러뷰를 준비하자! class CustomViewAdapter (private val dataSet : ArrayList) : RecyclerView.Adapter(){ class ViewHolder(binding : TextRowItemBinding) : RecyclerView.ViewHolder(binding.root){ val myText : TextView = binding.myText } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):..
[Android] RecyclerView 적용
1. 먼저 홈프래그먼트 xml파일에 리싸이클러뷰 코드를 추가한다. 2. 위의 코드처럼 추가를 했으면 리싸이클러뷰에 나타낼 아이템뷰 xml파일을 따로 생성해준다. 해당 코드는 이미지뷰와 텍스트뷰만 있으니 생략!! 3. 데이터클래스를 생성하고 해당 데이터를 추가한다. data class HomeDataModel( var title: String? ="", var image: Int? = null, var date: String? ="", var nickname: String? ="", var location: String? ="" ) 아이템에 해당하는 제목, 이미지, 데이터, 닉네임, 위치를 추가. 4. 어댑터 클래스와 뷰홀더를 생성한다. class HomeRVAdapter(private val random..
[Android] RecyclerView
RecyclerView ? -개요 RecyclerView는 리스트뷰(ListView)의 문제점들을 개선했다. 리스트뷰는 위의 그림처럼 아이템들이 삭제되고 생성되는 것을 반복했었다. 이로 인해 굉장히 낭비가 심해지면서 이러한 문제들을 해결하고자 리싸이클러뷰가 등장했다. 원래라면 사라질 뷰의 객체를 삭제하지 않고, 아래쪽 새로 나타날 곳에 재사용을 해서 RecycleView이다. 여기서 주의해야할 점은 데이터까지 재사용하는 것이 아니라!! 뷰객체의 아이템을 재사용할 뿐이다 즉! 원래 만들어 놓은 객체만 재사용한다. -특징 위의 그림처럼 리싸이클러뷰에 담길 데이터는 데이터리스트 클래스에 담긴다. 가운데 있는 어댑터가 아이템뷰(객체)를 생성하고 객체들의 데이터리스트들의 데이터를 가져와서 바인딩해준다. 실질적으로..
[Android] ViewPager를 이용한 TabLayout
클릭하여 프래그먼트를 이동시킬 수 있는 TabLayout을 ViewPager로 연결하여 슬라이드로 넘기는 형태로도 프래그먼트를 이동시킬 수 있다!! 앨범 프래그먼트에서 먼저 TabLayout의 자리와 ViewPager2의 자리를 먼저 잡아주자. 이렇게 위와 같은 형태로 자리를 잡아 주었으면 전 게시물 처럼 어댑터클래스를 만들어주어야한다. 앨범프래그먼트와 각각의 프래그먼트(수록곡, 상세정보, 영상)들을 연결해줄 AlbumVPAapter클래스를 생성해준다. class AlbumVPAdapter(fragment : Fragment) : FragmentStateAdapter(fragment) { override fun getItemCount(): Int { return 3 //3개의 프래그먼트가 있기 때문에 }..
[Android] ViewPager 로 Banner 구현
ViewPager를 이용하여 FLO앱의 배너를 구현해보자. 먼저 단순히 이미지뷰로 설정했었던 이미지를 ViewPager2 로 바꾸자. ViewPager와 ViewPager2가 있는데, 2는 VIewPager의 단점을 보완하며 새로 나온 버전이라 생각하면 된다. 위의 코드처럼 ViewPager2로 배너의 위치를 먼저 잡아주자. 그 다음 배너프래그먼트를 만들고, 홈프래그먼트와 연결해줄 배너 Adapter클래스도 생성해주자. 어댑터는 홈프래그먼트와 배너프래그먼트를 연결해주는 연결 선이라고 생각하면 된다! 다음은 배너프래그먼트.xml파일이다. 위의 코드에서 주의할 점이 있다!! 전체 뷰의 height를 wrap_content로 잡아주어야 한다. 왜냐하면 이 xml파일은 단순히 배너의 이미지만 담기 때문에 딱 그..