이번 시간에는 이전에 했던 포스팅에 이어서 리스트 스크롤(Scroll) 시에도 애니메이션 기능을 적용하는 방법을 알아보겠습니다. 이전 포스팅은 아래 링크를 들어가시면 됩니다.
2022.08.12 - [안드로이드] - [안드로이드 코틀린 ] RecyclerView Item Animation 서서히 나타나는 효과 주는 방법 part2
- 설명 -
스크롤시에 적용되는 애니메이션
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500">
<translate
android:fromXDelta="100%"
android:toXDelta="0%"/>
</set>
- 설명 -
1. private val context: Context
생성자에 Context 추가
2. AnimationUtils.loadAnimation(context, R.anim.slide_in_row)
애니메이션 적용
class ItemAdapter(private val itemList: ArrayList<Item>, private val context: Context): RecyclerView.Adapter<ItemAdapter.ItemHolder>() {
class ItemHolder(itemView: View): RecyclerView.ViewHolder(itemView){
//초기화
val titleText: TextView = itemView.findViewById(R.id.title_text)
val descText: TextView = itemView.findViewById(R.id.desc_text)
}
//화면 설정
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_layout, parent, false)
return ItemHolder(view)
}
//데이터 설정
override fun onBindViewHolder(holder: ItemHolder, position: Int) {
val lastPosition: Int = -1
if(holder.adapterPosition > lastPosition){
//애니메이션 적용
val animation: Animation = AnimationUtils.loadAnimation(context, R.anim.slide_in_row)
holder.itemView.startAnimation(animation)
val currentItem = itemList[position]
//데이터 넣기
holder.titleText.text = currentItem.title
holder.descText.text = currentItem.description
}
}
//아이템 갯수 가져오기
override fun getItemCount(): Int {
return itemList.size
}
//아이템 추가하기
fun addItem(item: Item){
itemList.add(item)
}
}
- 설명 -
1. ItemAdapter(itemList, this)
ItemAdapter 생성자에 context 추가
class MainActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//객체 생성
val itemList: ArrayList<Item> = ArrayList()
val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
//어댑터 생성
val itemAdapter: ItemAdapter = ItemAdapter(itemList, this)
//어댑터 적용
recyclerView.adapter = itemAdapter
//버튼 클릭 이벤트트
val searchButton: Button = findViewById(R.id.search_btn)
searchButton.setOnClickListener {
//초기화
itemList.clear()
//샘플 데이터 생성
for(i in 1..20){
val item: Item = Item("title${i}", "desc${i}")
//데이터 등록
itemAdapter.addItem(item)
}
//적용
itemAdapter.notifyDataSetChanged()
//애니메이션 실행
recyclerView.startLayoutAnimation()
}
}//onCreate
}
2022.08.08 - [안드로이드] - [안드로이드 코틀린] 같은 그림 찾기 게임 만드는 방법 part2 - 이미지 섞기& 보여주기
2022.08.06 - [안드로이드] - [안드로이드 코틀린] 간단한 할 일 목록(ToDo List) 쉽게 만드는 방법
2022.08.03 - [안드로이드] - [안드로이드 코틀린] 애니메이션으로 뷰(View) 표시 및 숨기기 - 크로스페이드(CrossFade) 쉽게 만드는 방법
[안드로이드 코틀린] 소프트 키보드(Soft Keyboard) 보여주는 방법, 숨기는 방법 (0) | 2022.08.17 |
---|---|
[안드로이드 코틀린] 클립보드(Clipboard) 텍스트 복사(Copy)&붙여 넣기(paste) 하는 방법 (0) | 2022.08.16 |
[안드로이드 코틀린 ] RecyclerView Item Animation 서서히 나타나는 효과 주는 방법 part2 (0) | 2022.08.12 |
[안드로이드 코틀린 ] RecyclerView Item Animation 서서히 나타나는 효과 주는 방법 part1 (0) | 2022.08.11 |
[안드로이드 코틀린] 같은 그림 찾기 게임 만드는 방법 part4 - 비교&완료 (0) | 2022.08.10 |
댓글 영역