我正在编码从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 回答

qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
如果您无法传递视图的高度或宽度,则Android会引发异常。不要使用新的LayoutParams对象,而是使用原来的对象,以便保留所有其他设置的参数。请注意,getLayoutParams返回的LayoutParams类型是父布局的类型,而不是您要调整大小的视图。
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) someLayout.getLayoutParams();
params.height = 130;
someLayout.setLayoutParams(params);

繁花不似锦
TA贡献1851条经验 获得超4个赞
this.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, theSizeIWant));
问题解决了!
注意:请确保使用父布局的LayoutParams。我的是LinearLayout.LayoutParams!
- 3 回答
- 0 关注
- 399 浏览
添加回答
举报
0/150
提交
取消