개발일지

삽질 - Android CoordinatorLayout Floating Action Button 본문

삽질

삽질 - Android CoordinatorLayout Floating Action Button

강태종 2020. 12. 10. 02:32

CoordinatorLayout은 View의 Visible상태가 GONE인 것은 생략하기 때문에 FloatingActionButton을 그냥 hide로 숨기면 그 다음부터 상태전달을 생략한다. (hide는 View의 Visible을 GONE으로 만들기 때문)

=> hide에 재정의한 리스너를 달아주자!!

    override fun onNestedScroll(coordinatorLayout: CoordinatorLayout, child: FloatingActionButton, target: View, dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, dyUnconsumed: Int, type: Int, consumed: IntArray) {
        super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed, type, consumed)
        if (dyConsumed > 0) {
            child.hide(object : OnVisibilityChangedListener() {
                override fun onHidden(fab: FloatingActionButton) {
                    super.onHidden(fab)
                    fab.visibility = View.INVISIBLE
                }
            })
        } else if (dyConsumed < 0) {
            child.show()
        }
    }
Comments