76331eae7d
1. Chaning Home Album sections from MetalAdapter to Normal 2. Adding animation icons 3. Removed cardElevation 0dp
46 lines
No EOL
1.6 KiB
Kotlin
46 lines
No EOL
1.6 KiB
Kotlin
package code.name.monkey.retromusic
|
|
|
|
import android.content.Context
|
|
import android.util.AttributeSet
|
|
import android.view.ViewGroup
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
|
|
class PeekingLinearLayoutManager : LinearLayoutManager {
|
|
@JvmOverloads
|
|
constructor(
|
|
context: Context?,
|
|
@RecyclerView.Orientation orientation: Int = RecyclerView.VERTICAL,
|
|
reverseLayout: Boolean = false
|
|
) : super(context, orientation, reverseLayout)
|
|
|
|
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(
|
|
context,
|
|
attrs,
|
|
defStyleAttr,
|
|
defStyleRes
|
|
)
|
|
|
|
override fun generateDefaultLayoutParams() =
|
|
scaledLayoutParams(super.generateDefaultLayoutParams())
|
|
|
|
override fun generateLayoutParams(lp: ViewGroup.LayoutParams?) =
|
|
scaledLayoutParams(super.generateLayoutParams(lp))
|
|
|
|
override fun generateLayoutParams(c: Context?, attrs: AttributeSet?) =
|
|
scaledLayoutParams(super.generateLayoutParams(c, attrs))
|
|
|
|
private fun scaledLayoutParams(layoutParams: RecyclerView.LayoutParams) =
|
|
layoutParams.apply {
|
|
when (orientation) {
|
|
HORIZONTAL -> width = (horizontalSpace * ratio).toInt()
|
|
VERTICAL -> height = (verticalSpace * ratio).toInt()
|
|
}
|
|
}
|
|
|
|
private val horizontalSpace get() = width - paddingStart - paddingEnd
|
|
|
|
private val verticalSpace get() = height - paddingTop - paddingBottom
|
|
|
|
private val ratio = 0.8f // change to 0.7f for 70%
|
|
} |