Minor changes to tabs animator
This commit is contained in:
parent
dc5283ce9a
commit
f521622d4d
@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.ui.main
|
|||||||
|
|
||||||
import android.animation.ObjectAnimator
|
import android.animation.ObjectAnimator
|
||||||
import android.support.design.widget.TabLayout
|
import android.support.design.widget.TabLayout
|
||||||
import android.view.View
|
|
||||||
import android.view.ViewTreeObserver
|
import android.view.ViewTreeObserver
|
||||||
import android.view.animation.DecelerateInterpolator
|
import android.view.animation.DecelerateInterpolator
|
||||||
|
|
||||||
@ -29,7 +28,6 @@ class TabsAnimator(val tabs: TabLayout) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
isLastStateShown = tabs.visibility == View.VISIBLE
|
|
||||||
tabs.viewTreeObserver.addOnGlobalLayoutListener(
|
tabs.viewTreeObserver.addOnGlobalLayoutListener(
|
||||||
object : ViewTreeObserver.OnGlobalLayoutListener {
|
object : ViewTreeObserver.OnGlobalLayoutListener {
|
||||||
override fun onGlobalLayout() {
|
override fun onGlobalLayout() {
|
||||||
@ -39,7 +37,7 @@ class TabsAnimator(val tabs: TabLayout) {
|
|||||||
// Save the tabs default height.
|
// Save the tabs default height.
|
||||||
tabsHeight = tabs.height
|
tabsHeight = tabs.height
|
||||||
|
|
||||||
// Now that we know the height, set the initial height and visibility.
|
// Now that we know the height, set the initial height.
|
||||||
if (isLastStateShown) {
|
if (isLastStateShown) {
|
||||||
setHeight(tabsHeight)
|
setHeight(tabsHeight)
|
||||||
} else {
|
} else {
|
||||||
@ -73,9 +71,13 @@ class TabsAnimator(val tabs: TabLayout) {
|
|||||||
* Expands the tab layout with an animation.
|
* Expands the tab layout with an animation.
|
||||||
*/
|
*/
|
||||||
fun expand() {
|
fun expand() {
|
||||||
if (isMeasured && (!isLastStateShown || getHeight() != tabsHeight)) {
|
if (isMeasured) {
|
||||||
animation.setIntValues(tabsHeight)
|
if (getHeight() != tabsHeight) {
|
||||||
animation.start()
|
animation.setIntValues(tabsHeight)
|
||||||
|
animation.start()
|
||||||
|
} else {
|
||||||
|
animation.cancel()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
isLastStateShown = true
|
isLastStateShown = true
|
||||||
}
|
}
|
||||||
@ -84,9 +86,13 @@ class TabsAnimator(val tabs: TabLayout) {
|
|||||||
* Collapse the tab layout with an animation.
|
* Collapse the tab layout with an animation.
|
||||||
*/
|
*/
|
||||||
fun collapse() {
|
fun collapse() {
|
||||||
if (isMeasured && (isLastStateShown || getHeight() != 0)) {
|
if (isMeasured) {
|
||||||
animation.setIntValues(0)
|
if (getHeight() != 0) {
|
||||||
animation.start()
|
animation.setIntValues(0)
|
||||||
|
animation.start()
|
||||||
|
} else {
|
||||||
|
animation.cancel()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
isLastStateShown = false
|
isLastStateShown = false
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user