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中控件移动的实现相关推荐

  1. Android中控件setVisibility(View.Gone)失效(经测试是非UI线程导致)

    前提:这个错误在Demo中无法展示,因为是实际场景的复杂情况. 场景:只有一部分手机出现. 简单来说,业务当时的界面是有两种输入登录模式,其中密码登录模式有三个EditText还有一个显示验证码的Im ...

  2. Android中控件的显示和隐藏以及EditText的可编辑和不可编辑状态

    一.控件的显示和隐藏 在Android中,怎么让控件可见和不可见呢? 其实,不论是显示和隐藏,都有两种方式,一种是在布局文件xml里设置,还有一种就是在我们的java代码中设置. 1. 可见(visi ...

  3. android内置picker控件,android中控件DatePicker控件-Fun言

    activity_main.xml android:id="@+id/dp" android:layout_width="match_parent" andro ...

  4. android gridview行分割线,Android中控件GridView实现设置行列分割线的方法示例

    前言 虽然Aandroid目前已经有RecyclerView了.非常强大的一个View.可以直接控制成ListView以及GridView等.而且画框线也比较方便.但是呢在很多情况下我们不得不仍然使用 ...

  5. android datepicker控件,android中控件DatePicker控件-Fun言

    activity_main.xml android:id="@+id/dp" android:layout_width="match_parent" andro ...

  6. 如何设置Android中控件的颜色透明度

    #ff000000 此为16进制颜色代码, 前2位ff为透明度,后6位为颜色值(000000为黑色,ffffff为白色,可以用ps等软件获取).透明度分为256阶(0-255),计算机上用

  7. android让一个控件跟上面控件对其,学个明白--Android控件架构

    Android控件架构 1.什么是View? View是Android中所有控件的基类.View是界面层的控件的一种抽象,它代表了一个控件.在Android中每个控件都会在界面中占得一块矩形的区域.在 ...

  8. android 控件总结,Android制霸控件View总结

    关于Android View控件 Android中控件大致被分为两类ViewGroup,View.ViewGroup作为容器管理View.Android视图,是类似于Dom树的架构.父视图负责测量定位 ...

  9. Android Design Support Library 中控件的使用简单介绍(一)

    Android Design Support Library 中控件的使用简单介绍(一) 介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android ...

最新文章

  1. 在纸上写好一个c语言程序后,上机运行的基本步骤为,c基本概念(选择题).docx
  2. 自定义控件:侧滑面板
  3. C#中控制窗体的显示与隐藏
  4. JVM调优:一个对象从出生到消亡过程
  5. PowerTip of the Day-How Much RAM Do You Have?
  6. python之条件、循环语句
  7. python telnetlib详解 执行循环命令_Python3+telnetlib实现telnet客户端
  8. 中介者模式php,php设计模式 Mediator (中介者模式)
  9. Uber柳甄:Uber中国独立核算 谋求国内A股上市
  10. 提高自己社会竞争力的书籍
  11. m基于迫零ZF准则的通信均衡器的matlab仿真
  12. 量化框架backtrader之一文读懂可视化
  13. MFS分布式文件系统
  14. python3 面向对象_傻瓜式学Python3——面向对象
  15. 主题包网址(Theme)
  16. 试题 基础练习 阶乘计算 (n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。   将a乘)
  17. 向上转型 (Upcasting)
  18. 图的遍历 BFS遍历(深学思维)
  19. 分享一个看起来挺酷眩的canvas做的粒子漩涡
  20. 中国机器人产业图谱(2022)

热门文章

  1. python把数据写入excel_Python读写sqlite3数据库的方法并且将数据写入Excel的实例详解...
  2. moto linux手机,moto linux手机目录简解
  3. ise 时钟约束_「新手入门」ISE工程升级到Vivado及板级信号调试技术
  4. MyBatis多对多关联查询示例——MyBatis学习笔记之十八
  5. bat常用命令操作符列表
  6. Splunk高管:中国才有真正意义的大数据
  7. selenium如何解决IE自动填充表单问题
  8. type=InnoDB ENGINE=InnoDB
  9. ArcEngine中画点画线画面
  10. PHP函数之CURL: 常见问题总结