diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/GridSpacingItemDecoration.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/GridSpacingItemDecoration.kt index a9365df3..85c7e1f1 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/GridSpacingItemDecoration.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/GridSpacingItemDecoration.kt @@ -7,7 +7,11 @@ import androidx.recyclerview.widget.RecyclerView /** * Manage spacing for recycler view & grid layout manager */ -class GridSpacingItemDecoration(val spanCount: Int, val spacing: Int, val includeEdge: Boolean) : +class GridSpacingItemDecoration( + private val spanCount: Int, + private val spacing: Int, + private val includeEdge: Boolean +) : RecyclerView.ItemDecoration() { override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt index 5bbd4ca1..3bf19307 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt @@ -599,25 +599,29 @@ enum class RowViewType(private var layoutRes: Int) : ViewIdentifier { itemView.findViewById(R.id.recyclerView)?.let { recyclerView -> + setLayoutManager(this.spanCount) + // val spanCount = row.unit.spanCount - val spacing = 4.px + val spacing = 2.px val includeEdge = true - - val viewManager = object : GridLayoutManager(itemView.context, spanCount) { - override fun checkLayoutParams(lp: RecyclerView.LayoutParams?): Boolean { - val side = width / this.spanCount - 4.px - lp?.let { params -> - params.width = side - params.height = side - } - return true - } - } +// +// val viewManager = object : GridLayoutManager(itemView.context, spanCount) { +// override fun checkLayoutParams(lp: RecyclerView.LayoutParams?): Boolean { +// val side = width / this.spanCount - 4.px +// lp?.let { params -> +// params.width = side +// params.height = side +// } +// return true +// } +// } recyclerView.apply { setHasFixedSize(true) - layoutManager = viewManager - addItemDecoration(GridSpacingItemDecoration(spanCount, spacing, includeEdge)) + addItemDecoration(ItemOffsetDecoration(spacing)) + +// layoutManager = viewManager +// addItemDecoration(GridSpacingItemDecoration(spanCount, spacing, includeEdge)) } } @@ -628,7 +632,7 @@ enum class RowViewType(private var layoutRes: Int) : ViewIdentifier { val viewManager = object : GridLayoutManager(itemView.context, spanCount) { override fun checkLayoutParams(lp: RecyclerView.LayoutParams?): Boolean { - val side = width / spanCount - 4.px + val side = width / spanCount - 3.px lp?.let { params -> params.width = side params.height = side diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/SpacesItemDecoration.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/SpacesItemDecoration.kt new file mode 100644 index 00000000..b22e41c3 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/SpacesItemDecoration.kt @@ -0,0 +1,38 @@ +package net.pokeranalytics.android.ui.view + +import android.graphics.Rect +import android.view.View +import androidx.recyclerview.widget.RecyclerView +import androidx.recyclerview.widget.RecyclerView.ItemDecoration + +class SpacesItemDecoration(private val space: Int) : ItemDecoration() { + + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + outRect.left = space + outRect.right = space + outRect.bottom = space + + // Add top margin only for the first item to avoid double space between items + if (parent.getChildLayoutPosition(view) == 0) { + outRect.top = space + } else { + outRect.top = 0 + } + } + +} + +class ItemOffsetDecoration(private val mItemOffset: Int) : ItemDecoration() { + + override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, + state: RecyclerView.State) { + super.getItemOffsets(outRect, view, parent, state) + outRect[mItemOffset, mItemOffset, mItemOffset] = mItemOffset + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/cell_calendar_grid.xml b/app/src/main/res/layout/cell_calendar_grid.xml index 0b76bd45..e3685a64 100644 --- a/app/src/main/res/layout/cell_calendar_grid.xml +++ b/app/src/main/res/layout/cell_calendar_grid.xml @@ -20,6 +20,7 @@ android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginTop="4dp" app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"