상세 컨텐츠

본문 제목

[안드로이드 코틀린] RecyclerView Animation 스크롤(Scroll) 에 애니메이션 효과 주는 방법

안드로이드

by aries574 2022. 8. 15. 12:35

본문


이번 시간에는 이전에 했던 포스팅에 이어서 리스트 스크롤(Scroll) 시에도 애니메이션 기능을 적용하는 방법을 알아보겠습니다. 이전 포스팅은 아래 링크를 들어가시면 됩니다.

2022.08.12 - [안드로이드] - [안드로이드 코틀린 ] RecyclerView Item Animation 서서히 나타나는 효과 주는 방법 part2

 

[안드로이드 코틀린 ] RecyclerView Item Animation 서서히 나타나는 효과 주는 방법 part2

recyclerView에 애니메이션 기능을 적용해서 서서히 리스트가 보이는 방법을 알아보겠습니다. 이번 시간에는 애니메이션 기능과 애니메이션 적용하는 방법에 대하여 알아보겠습니다. 이전 포스팅

aries574.tistory.com


목차

1. 실행 화면
2. 애니메이션 slide_in_row.xml
3. 아이템 어댑터 ItemAdapter.kt
4. 메인 코드 MainActivity.kt


1. 실행 화면

 


2. 애니메이션 slide_in_row.xml

 

- 설명 -

 스크롤시에 적용되는 애니메이션

<?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>


3. 아이템 어댑터 ItemAdapter.kt

- 설명 -

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)
    }
}

 

 

4. 메인 코드 MainActivity.kt

- 설명 -

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 - 이미지 섞기& 보여주기

 

[안드로이드 코틀린] 같은 그림 찾기 게임 만드는 방법 part2 - 이미지 섞기& 보여주기

이번 시간에는 같은 그림 찾기 part2 이미지 섞기와 섞은 이미지를 보여주는 방법을 알아보겠습니다. 화면 구성은 아래 링크를 들어가시면 됩니다. 2022.04.02 - [안드로이드] - [안드로이드] 같은 그

aries574.tistory.com

2022.08.06 - [안드로이드] - [안드로이드 코틀린] 간단한 할 일 목록(ToDo List) 쉽게 만드는 방법

 

[안드로이드 코틀린] 간단한 할 일 목록(ToDo List) 쉽게 만드는 방법

이번 시간에는 ListView를 이용해서 간단한 할 일(todo list) 목록 만드는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 아이템 화면 list_item.xml 3. 메인 화면 activity_main.xml 4. 메인 ..

aries574.tistory.com

2022.08.03 - [안드로이드] - [안드로이드 코틀린] 애니메이션으로 뷰(View) 표시 및 숨기기 - 크로스페이드(CrossFade) 쉽게 만드는 방법

 

[안드로이드 코틀린] 애니메이션으로 뷰(View) 표시 및 숨기기 - 크로스페이드(CrossFade) 쉽게 만드

이번 시간에는 2개의 이미지를  애니메이션(Animation)을 이용해서 변경해주는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 activity_main.xml 3. 메인 코드 MainActivity.kt 1. ..

aries574.tistory.com

 

반응형

관련글 더보기

댓글 영역