android - 重置 View 按下状态

标签 android animation view ripple

我有一个基于 View 的布局(没有 fragment ,一个 Activity )并在不同状态之间进行动画处理。为了获得更好的平滑度,我使用了两个工具栏并将它们交叉淡入淡出。

问题是,如果我按下一个工具栏的导航按钮并启动交叉淡入淡出动画,导航按钮不会恢复它的未按下状态(可能是由于动画),导致选择器不会消失......当我现在重新显示此工具栏,导航按钮看起来已按下(波纹可绘制对象仍然可见)。

我可以手动清除波纹动画吗?

我尝试过的

我得到如下所示的工具栏导航 View :Get Toolbar's navigation icon view referrence

  1. 我尝试清除 View 的动画:toolbarNavigationView.clearAnimation()
  2. 我尝试使用 ViewCompat.jumpDrawablesToCurrentState(toolbarNavigationView); 重置可绘制对象
  3. 我尝试将其发布到工具栏以确保布局如下所示:

    toolbar.post(new Runnable()
    {
        @Override
        public void run()
        {
            ViewCompat.jumpDrawablesToCurrentState(toolbarNavigationView);
        }
    });
    

最佳答案

此 hack 用于清除带有 android:background="?attr/selectableItemBackground" 的 View 的触摸动画(在 API 24 上测试,支持库 26.0.0):

view.setVisibility(View.INVISIBLE);
view.setVisibility(View.VISIBLE);

关于android - 重置 View 按下状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36545750/

相关文章:

jquery - 悬停动画后无法弄清楚如何使文本出现在 div 中

mysql - 我的 SQL 代码没有为我的查询返回任何行

java - 在 Android 中以编程方式更改 Spinner

android - 使用软键盘向上移动一种布局,但将一种布局保留在底部

android - 如何在android中为工具栏的appcompat Activity 设置导航主页按钮?

android - 限制 Firebase 实时数据库中的用户数量

javascript - HTM5 Canvas,更改动画效果的建议

javascript - 附加分离导航问题

android - 解锁 AFI 值 NFCV

android - 如何在Android代码中动态获取当前屏幕的亮度?