마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리사이클러뷰 notifyItemChanged 후 스크롤이 맨 위로 갑니다..

0 추천

안녕하세요 초보 개발자입니다..

코틀린으로 안드로이드 앱을 만들고 있습니다.

 

리사이클러뷰에서 특정 아이템에 '좋아요'를 클릭하도록 하려고 합니다.

문제는, 좋아요를 클릭 후에 스크롤이 맨 위로 간다는 것입니다.

 

 

어댑터

class ItemAlbumCardAdapter : RecyclerView.Adapter<ItemAlbumCardAdapter.MainViewHolder>() {


    inner class MainViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView) {

       <--변수 생략 -->


        init {
            // 아이템 클릭 이벤트 처리.

            icLike.setOnClickListener {
                val pos = adapterPosition
                if(pos != RecyclerView.NO_POSITION) {
                    //setOnClickListener
                    likeEvent(pos)
                }
                notifyItemChanged(pos)
            }
     }
}

 

프래그먼트

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
       

       <-- 코드 생략 -->

        val itemAlbumCardAdapter: ItemAlbumCardAdapter = ItemAlbumCardAdapter() 

        //adapter 연결
        itemAlbumCardAdapter.contents = contents!!
        fragmentView?.useralbuminsidecard_rv?.adapter = itemAlbumCardAdapter
        fragmentView?.useralbuminsidecard_rv?.layoutManager = LinearLayoutManager(activity!!)

        return fragmentView
    }

 

로그로 확인 해 보니, 아이템을 클릭할 때

프래그먼트 내에서 adapter를 또 다시 호출하던데

이로 인해서 스크롤이 맨 위로 올라가는 것 같습니다.

 

어떻게 해결할 수 있을까요?ㅜㅜㅜ

답변 부탁드리겠습니다..

 

병쥐 (300 포인트) 님이 2019년 11월 2일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...