我有一个ConstraintLayout
,底部带有导航栏。在某些情况下,我需要使用ConstraintLayout
动画隐藏底部导航。
XML布局文件:
<android.support.constraint.ConstraintLayout
android:id="@+id/lMainConstraint"
android:layout_width="match_parent"
android:layout_height="match_parent">
. . .
toolbar and others views
. . .
<com.aurelhubert.ahbottomnavigation.AHBottomNavigation
android:id="@+id/vNavigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" />
</android.support.constraint.ConstraintLayout>
要滑动到底部来隐藏导航:
val newSet = ConstraintSet()
newSet.clone(mInitialSet)
newSet.connect(R.id.toolbar, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.TOP)
newSet.connect(R.id.vNavigation, ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM)
val transition = AutoTransition()
transition.interpolator = AccelerateInterpolator()
transition.duration = 250
TransitionManager.beginDelayedTransition(lMainConstraint, transition)
newSet.applyTo(lMainConstraint)
但是,vNavigation
仅隐藏一半。我顶部的R.id.toolbar
完全隐藏了,其他ViewGroup
完全隐藏了。
将AHBottomNavigation
放入LinearLayout
或其他任何符号都是没有意义的。
使用库- com.aurelhubert:ahbottomnavigation:2.2.0
答案 0 :(得分:0)
我想这是因为AHBottomNavigation
的底部已被app:layout_constraintBottom_toBottomOf="parent"
约束到父级的底部。因此,当您通过将AHBottomNavigation
的顶部与父级的底部相连来添加新的约束时,它将集中在这两个约束之间。将set.clear(R.id.vNavigation, ConstraintSet.BOTTOM);
添加到您的代码中,看看它是否有效。