LayoutParams基本使用
LayoutParams是什么?
LayoutParams主要保存了一个View的布局参数,因此可以使用LayoutParams来改变布局参数从而达到View位置的效果,一般在自定义View的时候使用。
LayoutParams怎么用?
- 如果父控件是LinearLayout,需要使用LinearLayout.LayoutParams
代码如下:
LinearLayout.LayoutParams layoutParams=(LinearLayout.LayoutParams)getLayoutParams();
layoutParams.leftMargin=getLeft()+offsetX;
layoutParams.topMargin=getTop()+offsetY;
setLayoutParams(layoutParams)
- 如果父控件是RelativeLayout的话,需要使用RelativeLayout.LayoutParams。
RelativeLayout.LayoutParams layoutParams=(RelativeLayout.LayoutParams)getLayoutParams();
layoutParams.leftMargin=getLeft()+offsetX;
layoutParams.topMargin=getTop()+offsetY;
setLayoutParams(layoutParams)
- 除了使用布局的LayoutParams外,我们还可以用ViewGroup.MarginLayoutParams来实现:
ViewGroup.MarginLayoutParams layoutParams=(ViewGroup.MarginLayoutParams)getLayoutParams();
layoutParams.leftMargin=getLeft()+offsetX;
layoutParams.topMargin=getTop()+offsetY;
setLayoutParams(layoutParams);
- 对于一些不需要寻找父View,自己new出一个View自定义的情况。
View line = null;
LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 1);
layoutParams.leftMargin = 10;
line = new View(mContext);
line.setBackgroundResource(R.color.color_tie_bg);
addView(line, layoutParams);
- 通过WindowManager.LayoutParams来实现,下面是一段获取设置Window大小的代码,例如在自定义Dialog的时候,onCreate方法中编写这段代码,从而设置dialog最后显示Window的大小。
Window win = getWindow();WindowManager.LayoutParams lp = win.getAttributes();lp.height = DensityUtil.dip2px(mContext, 185);lp.width = DensityUtil.dip2px(mContext, 280);win.setAttributes(lp);
总结
以上是在开发过程中用到的一些LayoutParams相关的内容,后期会不断补充。
LayoutParams基本使用相关推荐
- Android 中文 API 文档 (45) —— AbsoluteLayout.LayoutParams
前言 本章内容是 android.widget.AbsoluteLayout.LayoutParams,版本为Android 2.2 r1,翻译来自"绵白糖",再次感谢" ...
- WindowManager.LayoutParams各种flag含义
本文实际上就是翻译了官方文档的flag部分,以便使用的时候对照. flags变量设置的值的各种意义//---------------1--------------------------------- ...
- WindowManager.LayoutParams类22
引用:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=84893 WindowManager.LayoutParams 是 Win ...
- Android中setLayoutParams要用父控件的LayoutParams
这几天做程序想明白了一个问题,在此做一下记录. ActionBarCustomView customview = new ActionBarCustomView(context); ActionBar ...
- new LayoutParams 使用
ImageView imageView = new ImageView(mcontext); LayoutParams layoutParams = new LayoutParams(150,130) ...
- java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
最近,在android中用代码动态改变某种布局(组件)的高度时,会遇到如题所示的类转换异常.上网查了一下,如下所示: These supply parameters to the parent of ...
- 【Android】动态UI : LayoutParams.addRule(...) LayoutParams.addRule(..., ...)
LayoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); LayoutParams.addRule(RelativeLayout.ABOVE, ...
- ViewGroup.LayoutParams
LayoutParams are used by views to tell their parents how they want to be laid out. (LayoutPrarms 用于表 ...
- 关于LayoutParams
每一个布局均有一个叫LayoutParams的内部类,如: LinearLayout.LayoutParams RelativeLayout.LayoutParams AbsoluteLayout ...
- AbsListView.LayoutParams
AbsListView.LayoutParams lp = new AbsListView.LayoutParams(-1, -2); 创建一个布局(LayoutParams)的实例 lp. AbsL ...
最新文章
- Bengio、Hinton的不懈追求——深度学习算法揭示大脑如何学习
- java文件不存在就创建_Java中创建并写文件的5种方式
- 你不一定懂的cpu显示信息
- python list append tuple_Python之list、tuple、dict、set
- 美国用户现在可以下载其所有Apple帐户数据,这是操作方法
- 我的Android进阶之旅------Android利用Sensor(传感器)实现水平仪功能的小例
- MySQL数据库编译过程
- WPF 3D模型的一个扩展方法
- C语言之结构体嵌套调用(十八)
- Windows电脑安装Linux系统的方法-Ubuntu版
- 从零开始学Android(一)
- springsoure.sts下载地址
- 记一次Maya使用入门
- LaTeX使用tikz-imagelabels宏包在图片上添加标签、文字等
- pyqtgraph 案例 002 Basic Plotting
- HR最不认同的5大跳槽理由排行榜
- 谷歌浏览器崩溃!亲测有效
- 财务报表学习笔记(1)
- 【Matplotlib】三维图及其俯视图+colorbar的位置调整与颜色、刻度细化
- Squeeze-and-Excitation Networks论文翻译——中文版