我有一个基于 View 的布局(没有 fragment ,一个 Activity )并在不同状态之间进行动画处理。为了获得更好的平滑度,我使用了两个工具栏并将它们交叉淡入淡出。
问题是,如果我按下一个工具栏的导航按钮并启动交叉淡入淡出动画,导航按钮不会恢复它的未按下状态(可能是由于动画),导致选择器不会消失......当我现在重新显示此工具栏,导航按钮看起来已按下(波纹可绘制对象仍然可见)。
我可以手动清除波纹动画吗?
我尝试过的
我得到如下所示的工具栏导航 View :Get Toolbar's navigation icon view referrence
- 我尝试清除 View 的动画:
toolbarNavigationView.clearAnimation()
- 我尝试使用
ViewCompat.jumpDrawablesToCurrentState(toolbarNavigationView); 重置可绘制对象
我尝试将其发布到工具栏以确保布局如下所示:
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/