首页 > 解决方案 > 如何通过向下滚动来增加片段的高度?

问题描述

我想在用户可以通过向下滚动来扩展它的活动上显示地图片段。像这样:

在此处输入图像描述

我将片段容器放入以折叠它,并在向下滚动以展开片段时CollapsingToolbarLayout增加高度。appBarLayoutCoordinatorLayout

coordinatorLayout.setOnTouchListener(object : View.OnTouchListener {
        override fun onTouch(v: View?, event: MotionEvent?): Boolean {
            when (event?.action) {
                MotionEvent.ACTION_DOWN -> {
                    downY = event.y
                    lastY = downY
                    return true
                }

                MotionEvent.ACTION_MOVE -> {
                    if (lastY == 0f) {
                        lastY = event.y
                        return true
                    }

                    val deltaY = event.y - lastY
                    lastY = event.y
                    val param = appBarLayout.layoutParams

                    if (deltaY > 0 || param.height > mapMinHeight) {
                        param.height += deltaY.roundToInt()
                        appBarLayout.layoutParams = param
                    }
                    return true
                }

                MotionEvent.ACTION_UP -> {
                    lastY = 0f
                    expandCollapseMap()
                    return true
                }
            }

            return false
        }
    })

但它滞后并且性​​能不佳。你能建议一个更好的方法吗?

标签: androidmaterial-designandroid-coordinatorlayoutandroid-collapsingtoolbarlayout

解决方案


推荐阅读