Android中控件移动的实现
2019独角兽企业重金招聘Python工程师标准>>>
在一些界面上,我们可能需要实现可以移动的按钮等功能,最简单的方式是调用View.layout(),任何布局上的空间都可以支持这种方式移动,上下左右参数值是相对于父viewgroup而言的。
public void layout(int l, int t, int r, int b)
eg. button.layout(newLeft, newTop, newRight,newBottom);
但是这种方式有个缺陷就是,当同一个viewgroup中有控件更新(界面刷新)时,移动的控件会复位,即回到一开始的位置,这常常会让人莫名其妙。
另外一种方法是调用MarginLayoutParams.setMargins(),重新设置控件位置参数来实现控件移动效果。这种方式比较适合RelativeLayout、FrameLayout,AbsoluteLayout,对于LinearLayout,因为最后增加的控件总在最下或最右,所以达不到移动效果,TableLayout也不行。
public MarginLayoutParams(MarginLayoutParams source)
eg.
FrameLayout.LayoutParams btnLp = (FrameLayout.LayoutParams)button.getLayoutParams();
btnLp.setMargins(newLeft, newTop, newRight, newBottom);
button.requestLayout();
Android不建议应用直接调用layout()方法,所以个人建议选择FrameLayout + setMargins()实现控件动态移动效果,还有一个经常搭配使用的方法是bringToFront(),当控件被盖住看不见时相当有用。
转载于:https://my.oschina.net/yuanhotel/blog/215013
Android中控件移动的实现相关推荐
- Android中控件setVisibility(View.Gone)失效(经测试是非UI线程导致)
前提:这个错误在Demo中无法展示,因为是实际场景的复杂情况. 场景:只有一部分手机出现. 简单来说,业务当时的界面是有两种输入登录模式,其中密码登录模式有三个EditText还有一个显示验证码的Im ...
- Android中控件的显示和隐藏以及EditText的可编辑和不可编辑状态
一.控件的显示和隐藏 在Android中,怎么让控件可见和不可见呢? 其实,不论是显示和隐藏,都有两种方式,一种是在布局文件xml里设置,还有一种就是在我们的java代码中设置. 1. 可见(visi ...
- android内置picker控件,android中控件DatePicker控件-Fun言
activity_main.xml android:id="@+id/dp" android:layout_width="match_parent" andro ...
- android gridview行分割线,Android中控件GridView实现设置行列分割线的方法示例
前言 虽然Aandroid目前已经有RecyclerView了.非常强大的一个View.可以直接控制成ListView以及GridView等.而且画框线也比较方便.但是呢在很多情况下我们不得不仍然使用 ...
- android datepicker控件,android中控件DatePicker控件-Fun言
activity_main.xml android:id="@+id/dp" android:layout_width="match_parent" andro ...
- 如何设置Android中控件的颜色透明度
#ff000000 此为16进制颜色代码, 前2位ff为透明度,后6位为颜色值(000000为黑色,ffffff为白色,可以用ps等软件获取).透明度分为256阶(0-255),计算机上用
- android让一个控件跟上面控件对其,学个明白--Android控件架构
Android控件架构 1.什么是View? View是Android中所有控件的基类.View是界面层的控件的一种抽象,它代表了一个控件.在Android中每个控件都会在界面中占得一块矩形的区域.在 ...
- android 控件总结,Android制霸控件View总结
关于Android View控件 Android中控件大致被分为两类ViewGroup,View.ViewGroup作为容器管理View.Android视图,是类似于Dom树的架构.父视图负责测量定位 ...
- Android Design Support Library 中控件的使用简单介绍(一)
Android Design Support Library 中控件的使用简单介绍(一) 介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android ...
最新文章
- 在纸上写好一个c语言程序后,上机运行的基本步骤为,c基本概念(选择题).docx
- 自定义控件:侧滑面板
- C#中控制窗体的显示与隐藏
- JVM调优:一个对象从出生到消亡过程
- PowerTip of the Day-How Much RAM Do You Have?
- python之条件、循环语句
- python telnetlib详解 执行循环命令_Python3+telnetlib实现telnet客户端
- 中介者模式php,php设计模式 Mediator (中介者模式)
- Uber柳甄:Uber中国独立核算 谋求国内A股上市
- 提高自己社会竞争力的书籍
- m基于迫零ZF准则的通信均衡器的matlab仿真
- 量化框架backtrader之一文读懂可视化
- MFS分布式文件系统
- python3 面向对象_傻瓜式学Python3——面向对象
- 主题包网址(Theme)
- 试题 基础练习 阶乘计算 (n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。 将a乘)
- 向上转型 (Upcasting)
- 图的遍历 BFS遍历(深学思维)
- 分享一个看起来挺酷眩的canvas做的粒子漩涡
- 中国机器人产业图谱(2022)
热门文章
- python把数据写入excel_Python读写sqlite3数据库的方法并且将数据写入Excel的实例详解...
- moto linux手机,moto linux手机目录简解
- ise 时钟约束_「新手入门」ISE工程升级到Vivado及板级信号调试技术
- MyBatis多对多关联查询示例——MyBatis学习笔记之十八
- bat常用命令操作符列表
- Splunk高管:中国才有真正意义的大数据
- selenium如何解决IE自动填充表单问题
- type=InnoDB ENGINE=InnoDB
- ArcEngine中画点画线画面
- PHP函数之CURL: 常见问题总结