Android如何在动画时将View移出父布局/如何将View显示在父布局外(android:clipChildren属性)
来源:互联网 发布:tp路由器mac地址过滤 编辑:程序博客网 时间:2024/06/06 06:35
近阵子完成公司需求,在进行动画时,将View移出父布局,View被裁剪或者消失。
后来发现clipChildren属性可以解决这个问题。
示例如下:
1.首先看一个布局。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="100dp" android:background="@android:color/holo_green_light" android:orientation="vertical"> <TextView android:id="@+id/txt_android" android:layout_width="200dp" android:layout_height="200dp" android:background="@android:color/holo_red_light" android:gravity="center" android:text="Android" android:textSize="50sp" /> </LinearLayout></LinearLayout>
理所当然,效果如下,TextView被裁剪了:
而当我们稍微修改一点,在最外层LinearLayout上加上android:clipChildren=”false”时,效果就变了。(clipChildren属性默认是true)
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="100dp" android:background="@android:color/holo_green_light" android:orientation="vertical"> <TextView android:id="@+id/txt_android" android:layout_width="200dp" android:layout_height="200dp" android:background="@android:color/holo_red_light" android:gravity="center" android:text="Android" android:textSize="50sp" /> </LinearLayout></LinearLayout>
效果如下:
很神奇,超过父布局的内容显示出来了。
然后演示下动画:
布局如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" android:orientation="vertical" android:weightSum="2"> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="@android:color/holo_green_light" android:orientation="vertical"> <TextView android:id="@+id/txt_android" android:layout_width="200dp" android:layout_height="200dp" android:background="@android:color/holo_red_light" android:gravity="center" android:text="Android" android:textSize="50sp" /> </LinearLayout></LinearLayout>
动画代码如下:
ObjectAnimator animator = ObjectAnimator.ofFloat(mTextView, "y", 0, 800);animator.setDuration(5000);animator.start();
效果如下:
Tips:你可能会发现,我将View移出了父布局,但是我是在爷爷布局设置的clipChildren属性,这个我暂时也没弄太明白,但是是亲测,只有在爷爷布局设置才能生效。
注意:发现一个bug,部分4.2.2的手机上,如果此view的动画超过其父布局进入爷爷布局,会出现view的部分内容在爷爷布局中残留的问题!!!
0 0
- Android如何在动画时将View移出父布局/如何将View显示在父布局外(android:clipChildren属性)
- layout_marginBottom的使用(将VIEW放置在布局底部)
- android中如何直接将布局中的View存成图像
- Android 使用代码指定view组件在布局中的属性
- Android listview显示复杂页面(inflate打气筒,将布局转换成view)
- Android学习路线(十)如何将Action Bar叠放在你的布局上
- android--如何将View转换成Bitmap
- 如何在IOS中使用实现Android view.gone 功能(swift版)cell(两种不同的布局)
- Android中 将布局文件/View显示至手机屏幕的 整个过程分析
- Android 将布局文件转成图片(将View 转换成BitMap)
- Android 将布局文件转成图片(将View 转换成BitMap)
- Android中如何将子View的坐标转换为父View的坐标
- android如何在一个布局文件中包含另外一个布局文件(include属性)
- android之android:clipChildren布局属性
- Android布局中的android:clipChildren属性
- 【Android】如何在自定义View中设置自定义的属性
- 关于Android中View显示到父布局之外
- android:clipChildren,是否限制子View在其范围内
- 关于android软键盘隐藏总结
- openscep分析
- 设置一个动态的壁纸作为你的linux桌面
- 【华为 OJ】最大差值
- FreeBuf发布2016年上半年金融行业应用安全态势报告
- Android如何在动画时将View移出父布局/如何将View显示在父布局外(android:clipChildren属性)
- hdu5532 Almost Sorted Array--最长上升子序列
- 数组元素替换
- 华为ME60常用维护命令
- 关闭_CRT_SECURE_NO_WARNINGS警告
- 关于android textview 中英文混合分行错误问题
- ajax实现异步任务
- light oj 1078 - Integer Divisibility
- AudioFlinger,AudioPolicyService and Audio track分析