android - Android, menuitem展开/折叠动画
问题描述
我已将自定义视图设置为 menuitem actionView:
<item
android:id="@+id/search"
android:icon="@drawable/ic_baseline_search_24"
android:title="@string/search_title"
app:actionViewClass="com.myapplication.SearchBox"
app:showAsAction="collapseActionView|ifRoom" />
当我单击“搜索”项时,“搜索框”会添加到工具栏,这很好。现在我想在我的动作视图展开和折叠时制作动画,我该如何实现呢?
更新
我尝试在onAttachedToWindow
事件中使用动画,它似乎有效。
... in my SearchBox class ...
override fun onAttachedToWindow() {
super.onAttachedToWindow()
if (parent is Toolbar) {
layoutParams.height = Toolbar.LayoutParams.MATCH_PARENT
layoutParams.width = Toolbar.LayoutParams.MATCH_PARENT
// Check if the runtime version is at least Lollipop
// get the center for the clipping circle
val cx = width
val cy = height / 2
x = 0f
// get the final radius for the clipping circle
val finalRadius = hypot(cx.toDouble(), cy.toDouble()).toFloat()
// create the animator for this view (the start radius is zero)
val anim = ViewAnimationUtils.createCircularReveal(this, cx, cy, 0f, finalRadius)
// make the view visible and start the animation
visibility = View.VISIBLE
anim.duration = 2000
anim.start()
}
}
这是正确的方法吗?
更新 2
实现接口androidx.appcompat.view.CollapsibleActionView
允许我们接收onActionViewExpanded()
和onActionViewCollapsed()
来自androidx.appcompat.widget.Toolbar
. 不幸的是,该接口已被弃用。
解决方案
推荐阅读
- sql - SQL:左连接 vs CASE 子查询——效率更高
- html - 将 Displacy Entity Recognition Visualization 渲染为 Plotly Dash
- java - 如何将位图转换为字节数组android?
- r - 在plotly中将箭头段添加到散点图中
- java - 无法读取 packageName - Android Studio
- node.js - Sublime 文本找不到 Node.js。如何帮助 Sublime 正确找到 Node?
- python - 带有 base10 的 int() 的文字无效
- mysql - 如何在 gnu make makefile 中转义反引号
- javascript - 在javascript中使用child_process执行shell命令
- javascript - 续集创建 2 个条目而不是 1 个