Forgot to commit MaxHeightScrollView

This commit is contained in:
dankito 2020-05-25 00:08:51 +02:00
parent 755e1eb553
commit 7713f5b6e5
1 changed files with 42 additions and 0 deletions

View File

@ -0,0 +1,42 @@
package net.dankito.banking.ui.android.views
import android.content.Context
import android.util.AttributeSet
import android.widget.ScrollView
open class MaxHeightScrollView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : ScrollView(context, attrs, defStyleAttr) {
companion object {
const val DisableMaxHeight = -1
}
open var maxHeightInPixel = DisableMaxHeight
protected set
open fun setMaxHeightInDp(maxHeightInDp: Int) {
val density = resources.displayMetrics.density
maxHeightInPixel = (maxHeightInDp * density).toInt()
}
open fun disableMaxHeight() {
maxHeightInPixel = DisableMaxHeight
}
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
if (maxHeightInPixel >= 0) {
val adjustedHeightMeasureSpec = MeasureSpec.makeMeasureSpec(maxHeightInPixel, MeasureSpec.AT_MOST)
super.onMeasure(widthMeasureSpec, adjustedHeightMeasureSpec)
}
else {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
}
}
}