我正在编码从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 回答
![?](http://img1.sycdn.imooc.com/54dc06a60001ef0401000100-100-100.jpg)
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
如果您无法传递视图的高度或宽度,则Android会引发异常。不要使用新的LayoutParams对象,而是使用原来的对象,以便保留所有其他设置的参数。请注意,getLayoutParams返回的LayoutParams类型是父布局的类型,而不是您要调整大小的视图。
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) someLayout.getLayoutParams();
params.height = 130;
someLayout.setLayoutParams(params);
![?](http://img1.sycdn.imooc.com/54584f3100019e9702200220-100-100.jpg)
繁花不似锦
TA贡献1851条经验 获得超4个赞
this.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, theSizeIWant));
问题解决了!
注意:请确保使用父布局的LayoutParams。我的是LinearLayout.LayoutParams!
- 3 回答
- 0 关注
- 395 浏览
添加回答
举报
0/150
提交
取消