[Android]スクロール位置をイベントリスナーで投げつけるカスタムWebView

はい、タイトルが雑ですw

WebViewのスクロール位置によって別のViewをもりもり動かさないと行けないことになり、カスタムViewを作ってみた。

とっても単純な作りなのでとりあえず晒しておく。

class ObservableWebView : WebView {

    interface OnScrollChangedListener {
        fun onScroll(l: Int, t: Int)
    }

    private var scrollChangedListener: OnScrollChangedListener? = null

    constructor(context: Context) : this(context, null)
    constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)
    constructor(context: Context, attrs: AttributeSet?, defStyleAttrs: Int) : super(context, attrs, defStyleAttrs)

    override fun onScrollChanged(l: Int, t: Int, oldl: Int, oldt: Int) {
        super.onScrollChanged(l, t, oldl, oldt)
        scrollChangedListener?.onScroll(l, t)
    }


    fun setOnScrollChangedCallback(onScrollChangedListener: OnScrollChangedListener) {
        scrollChangedListener = onScrollChangedListener
    }

}

タイトルとURLをコピーしました