mirror of
https://github.com/mihonapp/mihon.git
synced 2024-09-22 05:32:41 +02:00
30 lines
954 B
Kotlin
30 lines
954 B
Kotlin
package eu.kanade.tachiyomi.widget
|
|
|
|
import android.content.Context
|
|
import android.util.AttributeSet
|
|
import androidx.core.view.forEach
|
|
import androidx.viewpager.widget.ViewPager
|
|
|
|
/**
|
|
* A [ViewPager] that sets its height to the maximum height of its children.
|
|
* This is a way to mimic WRAP_CONTENT for its height.
|
|
*/
|
|
class MaxHeightViewPager(context: Context, attrs: AttributeSet?) : ViewPager(context, attrs) {
|
|
|
|
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
|
|
var measuredHeight = heightMeasureSpec
|
|
|
|
var height = 0
|
|
forEach {
|
|
it.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED))
|
|
val h = it.measuredHeight
|
|
if (h > height) height = h
|
|
}
|
|
if (height != 0) {
|
|
measuredHeight = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
|
|
}
|
|
|
|
super.onMeasure(widthMeasureSpec, measuredHeight)
|
|
}
|
|
}
|