From 108eb759ecfabcb1900bafe05a22b488069749b9 Mon Sep 17 00:00:00 2001 From: klaus Date: Wed, 1 May 2024 00:39:17 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=9C=EB=A6=AC=EC=A6=88=20=EC=A0=84?= =?UTF-8?q?=EC=B2=B4=EB=B3=B4=EA=B8=B0=20=EC=95=84=EC=9D=B4=ED=85=9C=20?= =?UTF-8?q?=EC=84=B8=EB=A1=9C=20=EA=B0=84=EA=B2=A9=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- .../series/SeriesListAllActivity.kt | 15 ++++--- .../common/DifferentSpacingItemDecoration.kt | 39 +++++++++++++++++++ .../res/layout/activity_series_list_all.xml | 3 +- 4 files changed, 52 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/common/DifferentSpacingItemDecoration.kt diff --git a/app/build.gradle b/app/build.gradle index 336f5e6..cbee962 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,8 +40,8 @@ android { applicationId "kr.co.vividnext.sodalive" minSdk 23 targetSdk 33 - versionCode 63 - versionName "1.10.5" + versionCode 64 + versionName "1.10.0" } buildTypes { diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/SeriesListAllActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/SeriesListAllActivity.kt index 0192631..337b49f 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/SeriesListAllActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/series/SeriesListAllActivity.kt @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity import kr.co.vividnext.sodalive.base.BaseActivity import kr.co.vividnext.sodalive.common.Constants -import kr.co.vividnext.sodalive.common.GridSpacingItemDecoration +import kr.co.vividnext.sodalive.common.DifferentSpacingItemDecoration import kr.co.vividnext.sodalive.common.LoadingDialog import kr.co.vividnext.sodalive.databinding.ActivitySeriesListAllBinding import org.koin.android.ext.android.inject @@ -58,15 +58,18 @@ class SeriesListAllActivity : BaseActivity( ) val spanCount = 3 - val spacing = 20 + val horizontalSpacing = 20 + val verticalSpacing = 100 val recyclerView = binding.rvSeriesAll recyclerView.layoutManager = GridLayoutManager(this, spanCount) recyclerView.addItemDecoration( - GridSpacingItemDecoration( - spanCount, - spacing, - true + DifferentSpacingItemDecoration( + spanCount = spanCount, + horizontalSpacing = horizontalSpacing, + verticalSpacing = verticalSpacing, + includeEdge = true + ) ) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/common/DifferentSpacingItemDecoration.kt b/app/src/main/java/kr/co/vividnext/sodalive/common/DifferentSpacingItemDecoration.kt new file mode 100644 index 0000000..03cc802 --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/common/DifferentSpacingItemDecoration.kt @@ -0,0 +1,39 @@ +package kr.co.vividnext.sodalive.common + +import android.graphics.Rect +import android.view.View +import androidx.recyclerview.widget.RecyclerView + +class DifferentSpacingItemDecoration( + private val spanCount: Int, + private val horizontalSpacing: Int, + private val verticalSpacing: Int, + private val includeEdge: Boolean +) : RecyclerView.ItemDecoration() { + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + val position = parent.getChildAdapterPosition(view) // 아이템의 위치 + val column = position % spanCount // 아이템의 열 위치 + + if (includeEdge) { + outRect.left = horizontalSpacing - column * horizontalSpacing / spanCount + outRect.right = (column + 1) * horizontalSpacing / spanCount + + if (position < spanCount) { + outRect.top = verticalSpacing + } + outRect.bottom = verticalSpacing + } else { + outRect.left = column * horizontalSpacing / spanCount + outRect.right = horizontalSpacing - (column + 1) * horizontalSpacing / spanCount + + if (position >= spanCount) { + outRect.top = verticalSpacing + } + } + } +} diff --git a/app/src/main/res/layout/activity_series_list_all.xml b/app/src/main/res/layout/activity_series_list_all.xml index 7b0e966..15ec099 100644 --- a/app/src/main/res/layout/activity_series_list_all.xml +++ b/app/src/main/res/layout/activity_series_list_all.xml @@ -2,7 +2,8 @@ + android:layout_height="match_parent" + android:background="@color/black">