1、应用场景
在使用RelativeLayout布局的时候,通常在载入布局之前在相关的XML文件中进行静态设置即可。但是,在有些情况下,我们需要动态的设置布局 的属性,在不同条件下设置不同的布局排列方式。这个时候就需要使用到RelativeLayout.LayoutParams.addRule()方法, 该方法有两种重载方法:
(1)、addRule(int verb) 该方法表示所设置节点的属性不能与其他兄弟节点相关或者属性值为布尔值。
比如 addRule(RelativeLayout.CENTER_VERTICAL)就表示在RelativeLayout中的相应节点是垂直居中的。
(2)、addRule(int verb,int anchor)该方法表示所设置节点的属性必须关联其他兄弟节点或者属性值为布尔值。
比如addRule(RelativeLayout.ALIGN_LEFT,R.id.date)就表示RelativeLayout中的相应节点放置在一个
id值为date的兄弟节点的左边。
2、实例代码
[java] view plain copy
- RelativeLayout mainLayout = (RelativeLayout)findViewById(R.id.main_layout);
- RelativeLayout.LayoutParams lpview = new RelativeLayout.LayoutParams
- (ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
- lpview.addRule(RelativeLayout.ALIGN_PARENT_TOP);
- lpview.addRule(RelativeLayout.ABOVE, R.id.text);
- GLSurfaceView glView = new GLSurfaceView(this);
- mainLayout.addView(glView,lpview);
时间: 2024-12-08 18:51:38