From 7dd6d46a5fdda020634deaa37dd9e19e79f46bc7 Mon Sep 17 00:00:00 2001 From: klaus Date: Fri, 22 Aug 2025 02:33:48 +0900 Subject: [PATCH] =?UTF-8?q?fix(talk-tab):=20=EC=B1=84=ED=8C=85=EB=B0=A9=20?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 채팅방 사이 간격 24 - 이미지 원형으로 변경 --- .../sodalive/chat/talk/TalkTabAdapter.kt | 7 +--- .../sodalive/chat/talk/TalkTabFragment.kt | 39 ++++++++++++++++++- app/src/main/res/layout/fragment_talk_tab.xml | 1 - 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/TalkTabAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/TalkTabAdapter.kt index 48248561..620f176f 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/TalkTabAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/TalkTabAdapter.kt @@ -6,11 +6,10 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide -import com.bumptech.glide.load.resource.bitmap.RoundedCorners +import com.bumptech.glide.load.resource.bitmap.CircleCrop import com.bumptech.glide.request.RequestOptions import com.orhanobut.logger.Logger import kr.co.vividnext.sodalive.databinding.ItemTalkBinding -import kr.co.vividnext.sodalive.extensions.dpToPx class TalkTabAdapter( private val onItemClick: (TalkRoom) -> Unit @@ -46,9 +45,7 @@ class TalkTabAdapter( .load(talkRoom.imageUrl) .apply( RequestOptions().transform( - RoundedCorners( - 28f.dpToPx().toInt() - ) + CircleCrop() ) ) .into(ivProfile) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/TalkTabFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/TalkTabFragment.kt index 24687742..cf33b489 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/TalkTabFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/TalkTabFragment.kt @@ -1,13 +1,16 @@ package kr.co.vividnext.sodalive.chat.talk +import android.graphics.Rect import android.os.Bundle import android.view.View import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import kr.co.vividnext.sodalive.base.BaseFragment import kr.co.vividnext.sodalive.chat.talk.room.ChatRoomActivity import kr.co.vividnext.sodalive.common.LoadingDialog import kr.co.vividnext.sodalive.databinding.FragmentTalkTabBinding +import kr.co.vividnext.sodalive.extensions.dpToPx import org.koin.android.ext.android.inject class TalkTabFragment : BaseFragment( @@ -40,7 +43,41 @@ class TalkTabFragment : BaseFragment( ) } - binding.rvTalk.apply { + val recyclerView = binding.rvTalk + recyclerView.setHasFixedSize(true) + + recyclerView.addItemDecoration(object : RecyclerView.ItemDecoration() { + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + super.getItemOffsets(outRect, view, parent, state) + + outRect.left = 24f.dpToPx().toInt() + outRect.right = 24f.dpToPx().toInt() + + when (parent.getChildAdapterPosition(view)) { + 0 -> { + outRect.top = 24f.dpToPx().toInt() + outRect.bottom = 12f.dpToPx().toInt() + } + + adapter.itemCount - 1 -> { + outRect.top = 12f.dpToPx().toInt() + outRect.bottom = 24f.dpToPx().toInt() + } + + else -> { + outRect.top = 12f.dpToPx().toInt() + outRect.bottom = 12f.dpToPx().toInt() + } + } + } + }) + + recyclerView.apply { layoutManager = LinearLayoutManager(requireContext()) adapter = this@TalkTabFragment.adapter } diff --git a/app/src/main/res/layout/fragment_talk_tab.xml b/app/src/main/res/layout/fragment_talk_tab.xml index 42490cb9..6953db74 100644 --- a/app/src/main/res/layout/fragment_talk_tab.xml +++ b/app/src/main/res/layout/fragment_talk_tab.xml @@ -10,7 +10,6 @@ android:layout_width="0dp" android:layout_height="0dp" android:clipToPadding="false" - android:padding="24dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"