Fix Continue button behavior

This commit is contained in:
Koitharu
2023-01-20 17:06:29 +02:00
parent 2b9307aa17
commit 452c0edfc7
3 changed files with 46 additions and 8 deletions

View File

@@ -8,10 +8,12 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
import androidx.core.view.ViewCompat
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
class ShrinkOnScrollBehavior : Behavior<ExtendedFloatingActionButton> {
open class ShrinkOnScrollBehavior : Behavior<ExtendedFloatingActionButton> {
@Suppress("unused") constructor() : super()
@Suppress("unused") constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
@Suppress("unused")
constructor() : super()
@Suppress("unused")
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
override fun onStartNestedScroll(
coordinatorLayout: CoordinatorLayout,
@@ -45,4 +47,4 @@ class ShrinkOnScrollBehavior : Behavior<ExtendedFloatingActionButton> {
}
}
}
}
}

View File

@@ -0,0 +1,39 @@
package org.koitharu.kotatsu.main.ui
import android.content.Context
import android.util.AttributeSet
import android.view.View
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.view.ViewCompat
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
import org.koitharu.kotatsu.base.ui.util.ShrinkOnScrollBehavior
import org.koitharu.kotatsu.base.ui.widgets.SlidingBottomNavigationView
class MainActionButtonBehavior : ShrinkOnScrollBehavior {
constructor() : super()
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
override fun layoutDependsOn(
parent: CoordinatorLayout,
child: ExtendedFloatingActionButton,
dependency: View
): Boolean {
return dependency is SlidingBottomNavigationView || super.layoutDependsOn(parent, child, dependency)
}
override fun onDependentViewChanged(
parent: CoordinatorLayout,
child: ExtendedFloatingActionButton,
dependency: View
): Boolean {
val bottom = child.bottom
val bottomLine = parent.height
return if (bottom > bottomLine) {
ViewCompat.offsetTopAndBottom(child, bottomLine - bottom)
true
} else {
false
}
}
}