我正在编码从RelativeLayout扩展的自定义视图,并且想以编程方式调整它的大小,该怎么办?自定义视图类类似于:public ActiveSlideView(Context context, AttributeSet attr){ super(context, attr); LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); if(inflater != null){ inflater.inflate(R.layout.active_slide, this); }
3 回答
慕桂英4014372
TA贡献1871条经验 获得超13个赞
如果您无法传递视图的高度或宽度,则Android会引发异常。不要使用新的LayoutParams对象,而是使用原来的对象,以便保留所有其他设置的参数。请注意,getLayoutParams返回的LayoutParams类型是父布局的类型,而不是您要调整大小的视图。
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) someLayout.getLayoutParams();
params.height = 130;
someLayout.setLayoutParams(params);
catspeake
TA贡献1111条经验 获得超0个赞
this.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, theSizeIWant));
问题解决了!
注意:请确保使用父布局的LayoutParams。我的是LinearLayout.LayoutParams!
- 3 回答
- 0 关注
- 329 浏览
添加回答
举报
0/150
提交
取消