我正在使用BottomNavigationview,并且希望为其设置动画高度,因此它是可扩展的。我的问题是商品在垂直方向上居中放置,但它们的上边距应为固定值,例如5dp。如何通过导航栏的顶部将它们向上移动?
五个项目之一的XML(带有文本!)(在菜单文件夹中):
<item
android:id="@+id/testid1"
android:icon="@drawable/ic_test1"
android:title="@string/Overview"
android:state_pressed="true"
/>
导航栏的XML:
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_gravity="bottom"
android:background="@color/white"
app:elevation="0dp"
app:itemIconSize="26dp"
app:itemIconTint="@color/NavBarGrey"
app:itemRippleColor="#B5F1F1F1"
app:itemTextColor="@color/NavBarGrey"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/bottom_nav_menu" />
这里是“向上”动画的Kotlin代码:
val anim = ValueAnimator.ofInt(convertDpToPixel(56.0).toInt(), convertDpToPixel(400.0).toInt())
anim.addUpdateListener { valueAnimator ->
val `val` = valueAnimator.animatedValue as Int
val layoutParams: ViewGroup.LayoutParams =
bottom_navigation.getLayoutParams()
layoutParams.height = `val`
bottom_navigation.setLayoutParams(layoutParams)
}
anim.setInterpolator(OvershootInterpolator(1.0f))
anim.duration = 450
anim.start()
Here is how it looks right now.
圆形项目应像蓝色按钮一样向上移动(这是一个额外的对象,而不是导航栏的一部分)
最佳答案
解决了它,只是对填充进行了动画处理...
关于android - 如何为导航栏图标设置边距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61546688/