通过代码改变控件的布局

Posted yanglang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过代码改变控件的布局相关的知识,希望对你有一定的参考价值。

在安卓代码编写过程中,一般都是通过xml的形式来规划界面组件的布局,然后在对应的activity的子类中通过id找到相对应的控件。但出于何种各样的需要,我们需要通过代码来改变控件的位置,可以通过如下的两种方式来改变:

一. 通过view的layout(left,right,top,down)来改变的。可以用view的getLeft,getRight,getTop,getBotton方法来获取Left,Right,Top,Botton的值,然后加上算出的偏移  (event.getRawX())得到改变后的Left,Right,Top,Botton的值.

二. 通过view.setLayoutParam()的方式来设置view在父布局中的布局参数。

ps:整个View的制作过程,分为onMeasure->onLayout->onDraw,在窗口的oncreate方法中,不要用第一种方式,因为view可能都没有绘制出来,就不可能改变位置,只能通过方式二,通过设置从布局参数的方式,让view完全后重新调整布局参数。

以上是关于通过代码改变控件的布局的主要内容,如果未能解决你的问题,请参考以下文章

当方向改变时重新定位控件

qt页面布局调整不了控件大小

MFC, SDI app, 为啥视图的布局不能通过代码改变?

MFC中可以通过鼠标拖拉更改大小的单文档,如何使窗口上控件在窗口改变大小的过程中会随之相对应的移动

WPF中如何通过C#代码改变控件Backgroung的颜色

qt中垂直布局代码怎么实现焦点的上下左右移动怎么