如何为导航栏图标设置边距?

时间:2020-05-01 16:37:37

标签: android xml kotlin android-animation android-bottomnav

我正在使用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.

圆形项目应像蓝色按钮一样向上移动(这是一个额外的对象,而不是导航栏的一部分)

1 个答案:

答案 0 :(得分:0)

解决了它,只是将填充动画了...

相关问题