Fix Continue button behavior
This commit is contained in:
@@ -8,10 +8,12 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior
|
|||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
||||||
|
|
||||||
class ShrinkOnScrollBehavior : Behavior<ExtendedFloatingActionButton> {
|
open class ShrinkOnScrollBehavior : Behavior<ExtendedFloatingActionButton> {
|
||||||
|
|
||||||
@Suppress("unused") constructor() : super()
|
@Suppress("unused")
|
||||||
@Suppress("unused") constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
|
constructor() : super()
|
||||||
|
@Suppress("unused")
|
||||||
|
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
|
||||||
|
|
||||||
override fun onStartNestedScroll(
|
override fun onStartNestedScroll(
|
||||||
coordinatorLayout: CoordinatorLayout,
|
coordinatorLayout: CoordinatorLayout,
|
||||||
@@ -45,4 +47,4 @@ class ShrinkOnScrollBehavior : Behavior<ExtendedFloatingActionButton> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -75,15 +75,12 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginBottom="-4dp"
|
|
||||||
android:paddingBottom="8dp"
|
|
||||||
android:text="@string/_continue"
|
android:text="@string/_continue"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:backgroundTint="?attr/colorContainer"
|
|
||||||
app:icon="@drawable/ic_read"
|
app:icon="@drawable/ic_read"
|
||||||
app:layout_anchor="@id/bottomNav"
|
app:layout_anchor="@id/bottomNav"
|
||||||
app:layout_anchorGravity="top|end"
|
app:layout_anchorGravity="top|end"
|
||||||
app:layout_behavior="org.koitharu.kotatsu.base.ui.util.ShrinkOnScrollBehavior"
|
app:layout_behavior="org.koitharu.kotatsu.main.ui.MainActionButtonBehavior"
|
||||||
app:layout_dodgeInsetEdges="bottom"
|
app:layout_dodgeInsetEdges="bottom"
|
||||||
app:layout_insetEdge="bottom"
|
app:layout_insetEdge="bottom"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|||||||
Reference in New Issue
Block a user