Android中的setLayoutParams
来源:互联网 发布:四件套尺寸怎么算法 编辑:程序博客网 时间:2024/05/21 21:40
private final void setLayoutParams(View view) { ViewGroup.LayoutParams linearParams = view.getLayoutParams(); Rect rc = getFramingRect(); linearParams.height = rc.height(); linearParams.width = rc.width(); view.setLayoutParams(linearParams);}private final void setLayoutParams(View view) { // view的parent为RelativeLayout RelativeLayout.LayoutParams linearParams = (RelativeLayout.LayoutParams) view.getLayoutParams(); Rect rc = getFramingRect(); linearParams.height = rc.height(); linearParams.width = rc.width(); linearParams.bottomMargin = rc.top; view.setLayoutParams(linearParams);}
Set the layout parameters associated with this view. These supply parameters to the parent of this view specifying how it should be arranged. 说明这里设置的参数是提供给parent的。也就是说这个setLayoutParams()是给其父控件看的,其实这也好理解:只有父类可以改变子View的位置布局.而不是说子View可以随意按照自己的想法摆放自己的位置,而不受父控件控制
关于setLayoutParams报错 有两个可能的原因
1.内部view没有用其parent的LayoutParams
在继承BaseAdapter的时候,用getView返回View的时候,用代码控制布局,需要用到View.setLayoutParams,但是报错了,报的是类型转换错误,经过研究,发现,这里不能使用ViewGroup.LayoutParams而必须使用对应父View的LayoutParams类型。如:某View被LinearLayout包含,则该View的setLayoutParams参数类型必须是LinearLayout.LayoutParams。原因在于LinearLayout(或其他继承自ViewGroup的layout,如:RelativeLayout)在进行递归布局的时候,LinearLayout会获取子View的LayoutParams,并强制转换成LinearLayout.LayoutParams.
2.最外层的,不能setLayoutParams 因为它没有parent
- Android中的setLayoutParams
- Android中的setLayoutParams
- Android中的setLayoutParams是给父控件看的
- android setLayoutParams不起作用
- Android setLayoutParams 常见问题汇总
- setLayoutParams
- setLayoutParams
- setLayoutParams
- Android中的dp,px,sp互转问题以及 View.setLayoutParams, 以及网络相关工具类
- android编程中setLayoutParams方法设置
- android编程中setLayoutParams方法设置
- android编程中setLayoutParams方法设置
- [android开发]ImageView\的getLayoutParams()和setLayoutParams()
- Android中setLayoutParams要用父控件的LayoutParams
- listView.setLayoutParams
- setlayoutparams用法
- setLayoutParams 开发问题及解决 java.lang.ClassCastException:android.widget.LinearLayout$LayoutParams
- Android利用setLayoutParams在代码中调整布局(Margin和居中)
- struts2中耦合访问servlet- API
- Scala学习总结
- 6.5 不同类型的数据集
- Auto Layout
- 6.4 属性数据
- Android中的setLayoutParams
- spark mllib k-means算法实现
- WCF学习——掀开你的盖头来
- iOS--关于RunLoop的一些总结
- 2.在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序
- myeclipse 配置
- 6.6 数据集的存储与表达
- android doc 本地文档加载慢的解决办法
- 常用的几个提高iOS开发效率的开源类库及工具