Android动画失效
来源:互联网 发布:python 能做界面吗 编辑:程序博客网 时间:2024/06/07 22:46
记今天在应用中使用开源控件FloatingActionButton时,弹出按钮的动画失效(即没有播放动画效果)。
调试了很久后发现,动画的失效居然是FragmentViewPagerAdapter中的Fragment数量(或者说某个Fragment)引起的。如下所示,将添加某个fragment的语句注释掉之后动画生效了,取消注释之后动画又失效了。
final ArrayList<BaseFragment> viewPagerList = new ArrayList<BaseFragment>();
homeFragment = new HomeFragment();
blockFragment = new BlockFragment();
localFragment = new CityLocationFragment();
viewPagerList.add(homeFragment);
viewPagerList.add(blockFragment);
viewPagerList.add(localFragment);
// viewPagerList.add(new SuiShouPaiFragment()); <---- 注释此行动画生效
fragmentAdapter.setList(viewPagerList);
viewPager.setAdapter(fragmentAdapter);
接下来继续跟踪问题,发现SuiShouPaiFragment中有这么一段,注释了就好了:
linearLayout.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mLineImage
.getLayoutParams();
int marginleft = m_lin_top.getLeft()
+ (mSelectText.getWidth() - mLineImage
.getWidth()) / 2;
lp.leftMargin = marginleft;
mLineImage.setLayoutParams(lp);
}
});
看了下这段代码的功能,真的是醉了,addOnGlobalLayoutListener是监听布局的变化,在监听布局的变化后又去修改布局,导致onGlobalLayout方法一直在回调,从未停过。
这就导致了FloatingActionButton动画的失效。旧代码真的是各种坑啊!调试了一个晚上!希望大家以后写代码注意点。
- Android动画失效
- android退出动画失效问题
- Android停止动画clearAnimation失效问题
- 动画失效
- Android Activity切换动画(解决back键后退失效问题)
- Android 控件使用Animator动画后,点击事件失效解决方法
- Android Activity切换动画(解决back键后退失效问题)
- Android Activity切换动画(解决back键后退失效问题)
- Android Activity切换动画(解决back键后退失效问题)
- Android的动画移动后点击事件失效问题
- angular material2 控件动画失效
- Android帧动画animation-list在ProgressBar上失效的解决办法
- 完美解决Android 4.1+版本 ViewPager.setPageTransformer()切换动画点击事件失效
- Android帧动画animation-list在ProgressBar上失效的解决办法
- 关于Android Studio中动画文件夹anim无法创建animation-list失效问题
- ios7 所有动画效果失效问题
- 关于push动画失效的问题
- activity之间跳转动画失效原因
- MySQL下载安装、配置与使用(win7x64)
- 个人博客系统 crazymad.cn
- 归并法外排序—海量数据排序
- Dojo1.11官方教程文档翻译(3.7)扩展NodeList
- 出现次数最多的整数
- Android动画失效
- postgresql的 sqlhelper
- Java 解惑:Comparable 和 Comparator 的区别
- 面试中会遇到的问题:TCP、HTTP、SOCKET之间的关系(详)
- UVALive-3637 The Bookcase(DP)
- BOM之Window案例
- 修改applicationid
- Android 为什么要有handler机制
- 字母图形