Android 显示/隐藏 布局(非visibility进行控制)
来源:互联网 发布:embed js获取播放时间 编辑:程序博客网 时间:2024/06/10 23:39
今天一小伙伴遇到这样的一个需求,点击隐藏布局再点击显示出来.
我想大部分的新手可能想到的就是点击之后直接
android:visibility="gone"
然后发现一点也没有反应,然后沉浸在纠结之中….
需求分析
点击之后,有拉伸有收缩的效果,很明显这个是动画.不能采用 android:visibility=”gone”的形式去做
第一步
要测量完整展示的高度也就是收缩/拉伸布局的高度
这layout 是拉伸/收缩的布局
private int getLongHeight() { layout.measure(0, 0); return layout.getMeasuredHeight(); }
第二步
我还要知道不展示的时候的高度(最小值) 在这里是为0
layoutParams = layout.getLayoutParams(); layoutParams.height = 0; layout.setLayoutParams(layoutParams);
第三步
开始设置动画
首先需要一个布尔类型的值来判断是拉伸还是收缩
private boolean isOpen = false;
在点击事件中我们设置一个方法
private void expend() { ValueAnimator valueAnimator = null; if (!isOpen){ //点击前是关闭状态,点击后就扩展拉开 isOpen = true; valueAnimator = ValueAnimator.ofInt(0, getLongHeight()); }else{ //点击前是开启状态,点击后就缩回去 isOpen = false; valueAnimator = ValueAnimator.ofInt(getLongHeight(), 0); } if (valueAnimator != null) { valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { int height = (Integer) valueAnimator.getAnimatedValue(); layoutParams.height = height; layout.setLayoutParams(layoutParams); } }); //这个是监听动画运行状态的 valueAnimator.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { if (isOpen){ //扩展开箭头向上 img_k1.setImageResource(R.mipmap.icon_c); }else{ //收缩时候向下 img_k1.setImageResource(R.mipmap.icon_k); } } @Override public void onAnimationCancel(Animator animation) { } @Override public void onAnimationRepeat(Animator animation) { } }); } valueAnimator.setDuration(100); valueAnimator.start(); }
注意 一定要设置时长 还有开启动画,不然你的界面也是没有效果的
2017年5月10日00:54:12
1 0
- Android 显示/隐藏 布局(非visibility进行控制)
- 隐藏布局非(visibility进行控制)
- div的visibility可以控制div的显示和隐藏
- display and visibility 显示 隐藏
- 代码中控制布局显示或隐藏
- android隐藏和显示布局
- Android控制键盘显示隐藏
- 控制HTML元素的显示与隐藏——display和visibility
- 控制HTML元素的显示与隐藏——display和visibility
- 控制HTML元素的显示与隐藏——display和visibility
- android布局属性: android:visibility
- 显示和隐藏元素display&&visibility
- android布局LinearLayout的隐藏和显示
- android布局中显示隐藏动画
- Android自定义滑动显示隐藏布局
- Android ExpandableLayout伸缩隐藏显示布局
- android 控制软键盘显示和隐藏
- android控制软键盘显示与隐藏
- TensorFlow 中文文档
- onload与ready对比
- Sublime Text3 解决中文乱码+汉化【最简单教程】
- js中三种URI编码方式比较
- 跨域详解
- Android 显示/隐藏 布局(非visibility进行控制)
- Ubuntu eth0不能自动获取地址 无法上网
- env命令
- 蓝桥杯 算法提高 三个整数的排序
- 基础知识--变量命名规则
- C语言字符串操作符的解读,模拟
- golang之fmt格式占位符总结
- Python lambda 与 闭包
- 面向开发的测试技术(二):性能测试