LayoutParams_liguangjiehao的博客-程序员秘密

技术标签: Android  

转自:http://blog.csdn.net/liuhaomatou/article/details/22899925


其实这个LayoutParams类是用于child view(子视图) 向 parent view(父视图)传达自己的意愿的一个东西(孩子想变成什么样向其父亲说明)其实子视图父视图可以简单理解成
一个LinearLayout 和 这个LinearLayout里边一个 TextView 的关系 TextView 就算LinearLayout的子视图 child view 。需要注意的是LayoutParams只是ViewGroup的一个内部类这里边这个也就是ViewGroup里边这个LayoutParams类是 base class 基类实际上每个不同的ViewGroup都有自己的LayoutParams子类
比如LinearLayout 也有自己的 LayoutParams 大家打开源码看几眼就知道了
myeclipse 怎么查看源码 请看http://byandby.iteye.com/blog/814277
下边来个例子


 

Java代码 :
      //创建一个线性布局   
       private LinearLayout mLayout;      
       mLayout = (LinearLayout) findViewById(R.id.layout);      
      //现在我要往mLayout里边添加一个TextView    
     //你可能会想直接在布局文件里边配置不就O 了 那是 但是这里为了说明问题我们用代码实现   
      TextView textView = new TextView(Activity01.this);      
           textView.setText("Text View " );   
           //这里请不要困惑这里是设置 这个textView的布局 FILL_PARENT WRAP_CONTENT 和在xml文件里边设置是一样的如   
    
//在xml里边怎么配置高宽大家都会的。   
  //第一个参数为宽的设置,第二个参数为高的设置。   
           LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(      
                   LinearLayout.LayoutParams.FILL_PARENT,      
                   LinearLayout.LayoutParams.WRAP_CONTENT      
           );      
           //调用addView()方法增加一个TextView到线性布局中   
           mLayout.addView(textView, p);      
          //比较简单的一个例子 

 


如果还不能理解下边在来一段直白的说明:
LayoutParams继承于Android.View.ViewGroup.LayoutParams.
LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。
但LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:
1,一个确定的值;
2,FILL_PARENT,即填满(和父容器一样大小);
3,WRAP_CONTENT,即包裹住组件就好。





  1. //参数分别未宽,高,对齐方式  
  2.             LayoutParams lp = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012360634/article/details/47045583

智能推荐

xctf攻防世界 MISC高手进阶区 easycap_l8947943的博客-程序员秘密

做不动web了,换个模块玩玩吧,太累了1. 打开题目,下载附件发现是个.pacp文件,是常用的数据报存储格式,一般用wireshark打开,打开如图:2. 题目分析题目提示你能从截取的数据包中得到flag吗?那么我们需要分析数据流中的内容,因此需要追踪流,如图:追踪的内容如图:最终的flag为:FLAG:385b87afc8671dee07550290d16a80713. 总结什么是wireshark追踪流?我们的一个完整的数据流一般都是由很多个包组成的,当我们选择了追踪流时,会弹出该流

Ext文本输入框:Ext.form.TextField属性汇总_ryuudenne的博客-程序员秘密

Ext.form.TextField主要配置表:allowBlank                 Boolean             是否允许为空(默认true)blankText                  String              为空验证失败提示信息emptyText                  String              空字段中默

Git 和 Github 使用记录_月色很柔的博客-程序员秘密

记录Git和Github使用记录前言什么是GitGit 的安装、配置、使用使用IDEA或PyCharm管理PyCharm配置Git和GithubCreate Git Repository上传项目进行修改上传操作错误处理前言本文的目的是为了帮助更快的上手Git将资源上载至Github什么是GitGit 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Gi...

关于free释放内存_free释放内存空间_onwer3的博客-程序员秘密

最近将C程序设计教程(C How To Program)第二版书上12-3的例子敲上电脑程序如下:#include #include #include struct listNode { char data; struct listNode * nextPtr;};typedef struct listNode LISTNODE;typedef LISTNODE *LISTNODEPTR;void insert (LISTNODEPTR *, char);char deletex (LISTNODEPTR

python dataframe日期运算常见的报错及解决方法 - unsupported operand type(s) for -: ‘DatetimeArray‘ and ‘str‘等_若芷兰的博客-程序员秘密

1、背景描述:(日期加减计算经常遇到的报错)数据分析中要对日期进行计算,经常遇到这些报错或问题:TypeError: cannot subtract DatetimeArray from ndarrayTypeError: unsupported operand type(s) for -: ‘DatetimeArray’ and ‘datetime.date’TypeError: unsupported operand type(s) for -: ‘DatetimeArray’ and ‘s

STM32G474 基于IRTIM外设实现红外接收_藤一泓的博客-程序员秘密

STM32红外接口(IRTIM)该外设的主要特点,用于产生红外遥控信号。

随便推点

Unity3d 坦克AI_自动寻怪,自动追击脚本参考_Rains卍Soft的博客-程序员秘密

var Enemy_tank: GameObject; //定义的坦克 var firepoint: Transform; //定义的开火点 var bullet: Rigidbody;

用Python操作Kubernetes的Job_Dark_Ice_的博客-程序员秘密

目录初始化创建Job直接使用YAML使用dict监控Job运行V1Job的使用列出Job读取Job列出一个Job的Pod删除Job更新Job总结关于Kubernetes的Python SDK,几乎只有官方项目的examples。关于Job的基本增删改查操作,可以参考job_crud.py。但是,这只是基本用法,缺乏一些实用细节。本文给出Python SDK操作Kubernetes Job的更多示例代码,以及相关解释。pipinstallk..

Mbed OS 文档翻译 之 参考(贡献(指南(CLA)))_XinLiBK的博客-程序员秘密

CLA如果您想为 Mbed OS 贡献代码,您必须签署 Mbed Contributor 许可协议(CLA)。请在提交任何代码之前请求 CLA(例如,在讨论 GitHub 上的问题时),然后等待 Arm 确认接受您的 CLA,然后再做出贡献。       注意: 如果您在签署 CLA 之前发布问题的功能或解决方案,那么发现您无法或不允许签署 CLA,我们将无法再使用您的解决方案。这可能会阻...

【STM32】HAL库 STM32G474定时器输入捕获获取频率和占空比 IDE(STM32CubeIDE)_stm32hal输入捕获测频率_藤一泓的博客-程序员秘密

一.输入捕获概念输入捕获模式可以用来测量脉冲宽度或者测量频率。二.基于NUCLEO-G474RE开发板新建工程2.1 打开 STM32CubeMX 软件,新建工程.我手里有开发板所以选择基于开发板。2.2 选择开发板(芯片)我这里选择的是我的开发板NUCLEO-G474RE,少去一些步骤。2.3 配置TIM1配置TIM1产生100kHz的PWM,对应管脚PC0。F= Tclk/[(psc+1) * (cnt+1)] = 170MHz/[1*1700] = 100kHz。2.4 配置

keep-alive你了解多少?_keep-alive属性_jackelson的博客-程序员秘密

文章目录一、keep-alive是什么? 二、keep-alive属性 三、实现原理 总结一、keep-alive是什么?keep-alive的是vue的一个内置实例,通过这个属性可以缓存的组建的v-node。这样做有什么用呢?1.当你在对组件的反复切换的时候,去复用缓存的v-node,可以提高页面的渲染效率2.可以防止在组件的切换的时候导致组件状态变化。二、keep-alive属性ke.

redis有序集合zset的底层实现——跳跃表skiplist_da_kao_la的博客-程序员秘密

redis有序集合zset的底层实现——跳跃表skiplistredis作为一种内存KV数据库,提供了string, hash, list, set, zset等多种数据结构。其中有序集合zset在增删改查的性质上类似于C++ stl的map和Java的TreeMap,提供了一组“键-值”对,并且“键”按照“值”的顺序排序。但是与C++ stl或Java的红黑树实现不同的是,redis中有序集合...