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

标签 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.

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

最佳答案

解决了它,只是对填充进行了动画处理...

关于android - 如何为导航栏图标设置边距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61546688/

相关文章:

xml - XSL 中的命名空间,从模板 XML 文件复制属性值以更新翻译文件

android - 有什么您不能使用 HTML5/Javascript 移动应用程序做的,而您可以使用 native 移动应用程序做的?

android - 如何在崩溃后很长时间内调试我的 Android 应用程序

android - 将 SMS 消息标记为已读/未读或删除在 KitKat 中不起作用的消息

android - 使用CoordinatorLayout时如何隐藏工具栏的部分内容

kotlin - 如何对同一端点并行进行多个 API 调用并将所有响应合并到输出数组中?

android - 不推荐使用配置 'compile',但所有配置都是 'implementation'

android - 我可以一次获取 android 布局的所有 EditText 吗?

c# - 如何使用 C# 将自定义 XML 添加到打开的 Excel 2007 工作簿?

java - Java中不同类型的类使用相同的方法