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基本使用相关推荐

  1. Android 中文 API 文档 (45) —— AbsoluteLayout.LayoutParams

    前言 本章内容是 android.widget.AbsoluteLayout.LayoutParams,版本为Android 2.2 r1,翻译来自"绵白糖",再次感谢" ...

  2. WindowManager.LayoutParams各种flag含义

    本文实际上就是翻译了官方文档的flag部分,以便使用的时候对照. flags变量设置的值的各种意义//---------------1--------------------------------- ...

  3. WindowManager.LayoutParams类22

    引用:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=84893 WindowManager.LayoutParams 是 Win ...

  4. Android中setLayoutParams要用父控件的LayoutParams

    这几天做程序想明白了一个问题,在此做一下记录. ActionBarCustomView customview = new ActionBarCustomView(context); ActionBar ...

  5. new LayoutParams 使用

    ImageView imageView = new ImageView(mcontext); LayoutParams layoutParams = new LayoutParams(150,130) ...

  6. java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams

    最近,在android中用代码动态改变某种布局(组件)的高度时,会遇到如题所示的类转换异常.上网查了一下,如下所示: These supply parameters to the parent of ...

  7. 【Android】动态UI : LayoutParams.addRule(...) LayoutParams.addRule(..., ...)

    LayoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); LayoutParams.addRule(RelativeLayout.ABOVE, ...

  8. ViewGroup.LayoutParams

    LayoutParams are used by views to tell their parents how they want to be laid out. (LayoutPrarms 用于表 ...

  9. 关于LayoutParams

    每一个布局均有一个叫LayoutParams的内部类,如: LinearLayout.LayoutParams  RelativeLayout.LayoutParams  AbsoluteLayout ...

  10. AbsListView.LayoutParams

    AbsListView.LayoutParams lp = new AbsListView.LayoutParams(-1, -2); 创建一个布局(LayoutParams)的实例 lp. AbsL ...

最新文章

  1. Bengio、Hinton的不懈追求——深度学习算法揭示大脑如何学习
  2. java文件不存在就创建_Java中创建并写文件的5种方式
  3. 你不一定懂的cpu显示信息
  4. python list append tuple_Python之list、tuple、dict、set
  5. 美国用户现在可以下载其所有Apple帐户数据,这是操作方法
  6. 我的Android进阶之旅------Android利用Sensor(传感器)实现水平仪功能的小例
  7. MySQL数据库编译过程
  8. WPF 3D模型的一个扩展方法
  9. C语言之结构体嵌套调用(十八)
  10. Windows电脑安装Linux系统的方法-Ubuntu版
  11. 从零开始学Android(一)
  12. springsoure.sts下载地址
  13. 记一次Maya使用入门
  14. LaTeX使用tikz-imagelabels宏包在图片上添加标签、文字等
  15. pyqtgraph 案例 002 Basic Plotting
  16. HR最不认同的5大跳槽理由排行榜
  17. 谷歌浏览器崩溃!亲测有效
  18. 财务报表学习笔记(1)
  19. 【Matplotlib】三维图及其俯视图+colorbar的位置调整与颜色、刻度细化
  20. Squeeze-and-Excitation Networks论文翻译——中文版

热门文章

  1. php:html中嵌入php代码,php中嵌入html代码
  2. malloc内存管理总结
  3. BottleNeck 瓶颈层
  4. MotionEvent对象
  5. CentOS 提示Warning: dracut-initqueue timeout - starting timeout script
  6. CyclicBarrie(循环栅栏)的作用与用法
  7. linux命令进u 盘,UNetbootin Linux操作系统装进移动硬盘
  8. 贾平凹《秦腔》小记 - 时代变迁下的秦腔与人
  9. Linux系统用户权限的基本权限UGO
  10. impala3.4.0安装