自定义viewGroup时候.layout(int l, int t, int r, int b)方法说明

void android.view. View.layout(int l, int t, int r, int b)
是指  该VIEW  与其父类 VIEW 的关系
以父类VIEW的 左上角为 原点0,0
那么, left就是 子视图 左边距到 父类左边距的 距离
top就是 子视图 上边距到 父类上边距的 距离
right就是 子视图 右边距到 父类左边距的 距离  ,可以理解为,子视图left+子视图的宽度
bottom就是 子视图 底部边距到 父类上边距的 距离,可以理解为,子视图top+子视图的高度
               

我在用task请求网络 ,返回onPostExecute 中更新UI,发现 textview的背景可以更换,text内容也更改了,可是layout设置位置并没有变化。
在textview上做了个onclicklistener点击时,改变位置却可以。
后面发现,需要用handler. postDelayed
新建一个消息,并且需要让该控件获取焦点,就可以了。
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. airQualityActivity.getHandlerInstance().postDelayed(new Runnable() {  
  2.               
  3.             @Override  
  4.             public void run() {  
  5.                 // TODO Auto-generated method stub  
  6.                 airIconTextView.requestFocus();  
  7.                 airIconTextView.layout(tempView.getLeft(),0,airIconTextView.getWidth()+tempView.getLeft(),airIconTextView.getHeight());           
  8.             }  
  9.         }, 100);  

说明:

1. 自定义一个view时,建议重写onLayout,以设定它的位置。 

   在外部调用时,调用layout(),触发设定位置。


2. 自定义一个viewGroup时,必须且只能重写onLayout。

   需要在设定子view的位置:调用subview.layout(); 触发



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值