我正在使用Android Support Design的BottomNavigationView
来实现底部选项卡导航。
<android.support.design.widget.BottomNavigationView
android:id="@+id/main_nav"
android:layout_width="match_parent"
android:layout_height="56dp"
app:labelVisibilityMode="unlabeled"
app:itemIconSize="40dp"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
app:itemBackground="@color/blue_active"
app:menu="@menu/nav_items">
</android.support.design.widget.BottomNavigationView>
我的目标是:
通过使用 ObjectAnimator
在选项卡(菜单)被按下时以编程方式实现图标动画
这是菜单:
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/nav_home"
android:icon="@drawable/ic_home"
android:title="@string/nav_home" />
<item
android:id="@+id/nav_games"
android:icon="@drawable/games"
android:title="@string/nav_games" />
<item
android:id="@+id/nav_profile"
android:icon="@drawable/profile"
android:title="@string/nav_profile" />
</menu>
代码:
mMainNav.setOnNavigationItemSelectedListener { item ->
when (item.itemId) {
R.id.nav_home -> {
//item.icon is drawable
var myAnimation = ObjectAnimator.ofFloat(item.icon,"rotation",0f,360f)
myAnimation.duration = 500
myAnimation.start() //nothing happens
setFragment(HomeFragment)
true
}
这样做没有任何动画效果。
问题出在哪里?我应该使用另一种方式进行动画,还是我只是应用不正确?
我尝试使用图标绘制的imageview进行动画,然后将其设置为items actionview,但这也不起作用(会发生一些反应,但会产生一些不相关的奇怪行为)。
var drawable = applicationContext.getDrawable(R.drawable.ic_home)
var someImageView = ImageView(this)
someImageView.setImageDrawable(drawable)
var myAnimation = ObjectAnimator.ofFloat(someImageView,"rotation",0f,100f)
myAnimation.duration = 2000
myAnimation.start()
item.actionView = someImageView
赏金链接已经失效,请检查以下链接:https://streamable.com/99pa8。