LayoutParams 简单理解[通俗易懂]

LayoutParams 简单理解[通俗易懂]简单说说自己对androidLayoutParams的理解吧。 publicstaticclass ViewGroup.LayoutParams extendsObject java.lang.Object   ↳android.view.ViewGroup.LayoutParams  //继承关系 以下说明摘自官方文档E文好的可以看看 Cla


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
简单说说 自己对 android LayoutParams的理解吧。 


public static class 


ViewGroup.LayoutParams 


extends Object 




java.lang.Object 


   ↳ android.view.ViewGroup.LayoutParams   //继承关系 




以下说明摘自官方文档E文好的可以看看 


Class Overview 




LayoutParams are used by views to tell their parents how they want to be laid out. See ViewGroup Layout Attributes for a list of all child view attributes that this class supports. 




The base LayoutParams class just describes how big the view wants to be for both width and height. For each dimension, it can specify one of: 




FILL_PARENT (renamed MATCH_PARENT in API Level 8 and higher), which means that the view wants to be as big as its parent (minus padding) 


WRAP_CONTENT, which means that the view wants to be just big enough to enclose its content (plus padding) 


an exact number 


There are subclasses of LayoutParams for different subclasses of ViewGroup. For example, AbsoluteLayout has its own subclass of LayoutParams which adds an X and Y value. 




E文不好看不懂  但是觉得写得啰嗦了 


其实这个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代码  
收藏代码

  1.       //创建一个线性布局  
  2.        private LinearLayout mLayout;     
  3.        mLayout = (LinearLayout) findViewById(R.id.layout);     
  4.       //现在我要往mLayout里边添加一个TextView   
  5.      //你可能会想直接在布局文件里边配置不就O 了 那是 但是这里为了说明问题我们用代码实现  
  6.       TextView textView = new TextView(Activity01.this);     
  7.            textView.setText(“Text View “ );  
  8.            //这里请不要困惑这里是设置 这个textView的布局 FILL_PARENT WRAP_CONTENT 和在xml文件里边设置是一样的如  
  9.   /**<TextView 
  10.            android:layout_width=”fill_parent” 
  11.            android:layout_height=”wrap_content” 
  12.            android:text=”Text View”/>*/  
  13. //在xml里边怎么配置高宽大家都会的。  
  14.   //第一个参数为宽的设置,第二个参数为高的设置。  
  15.            LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(     
  16.                    LinearLayout.LayoutParams.FILL_PARENT,     
  17.                    LinearLayout.LayoutParams.WRAP_CONTENT     
  18.            );     
  19.            //调用addView()方法增加一个TextView到线性布局中  
  20.            mLayout.addView(textView, p);     
  21.           //比较简单的一个例子  



如果还不能理解下边在来一段直白的说明: 


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,即包裹住组件就好。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191095.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • php vld_phpenv使用教程

    php vld_phpenv使用教程1、查看本地是否已经安装了vld扩展,如果没有任何输出,那就准备安装吧![root@taiwu~]#/home/work/lib/php5.6.7/bin/php-m|grepvld2、去官方网站下载vld(http://pecl.php.net/package/vld),找到最新版本,右键复制地址链接就能得到下载地址,通过浏览器直接下载也行。我是通过wget命令在centos的命…

    2022年10月30日
  • python爬虫爬图片教程_爬虫爬取图片的代码

    python爬虫爬图片教程_爬虫爬取图片的代码用Python爬虫来爬小姐姐本教程将教你从0开始走进Python爬虫1.我们先要知道Python爬虫的原理基本的Python爬虫原理很简单,分为三步获取网页源码通过分析源码并通过代码来获取其中想要的内容进行下载或其他操作话不多说直接开干注意!本教程只是为了快速入门爬虫并实现一个功能,不考虑代码写的漂不漂亮,规不规范先准备上我们的目标网页开始我用的工具是:JetBrai…

    2022年10月29日
  • 嵌入式工程师有发展前途吗?[通俗易懂]

    嵌入式工程师有发展前途吗?[通俗易懂]嵌入式工程师有发展前途吗?现在来看,无论是软件开发还是嵌入式等,都是青春饭,但是软件(java,安卓,ios等应用层)的工资都稍高于嵌入式。但是嵌入式的门槛却非常高。是否应…显示全部​关注者1,379被浏览1,046,366已关注​写回答​邀请回答​好问题22​4条评论​分享​72个回答默认排序zhengzhimin设计师769人赞同了该回答一个在嵌入式行业工作快15年,在华为工作了6年的嵌入式工程师来谈谈看法。…

    2022年9月12日
  • vue生命周期函数_vue3生命周期函数

    vue生命周期函数_vue3生命周期函数生命周期函数生命周期函数代表的是Vue实例,或者是Vue组件,在网页中各个生命阶段所执行的函数。生命周期函数可以分为创建阶段和运行期间以及销毁期间。其中创建期间的函数有beforeCreate、c

    2022年7月29日
  • docker容器启动参数[通俗易懂]

    dockerrun[option]镜像名[向启动容器中传入的命令]常用可选参数说明:-i表示以“交互模式”运行容器-t表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。–name为创建的容器命名-v表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即宿主机目录:容器中目录),可以使用多个-v做…

    2022年4月14日
  • maven 本地仓库配置_Maven配置

    maven 本地仓库配置_Maven配置Maven本地仓库安装及配置1.进入maven官网下载2.配置环境变量3.测试是否配置成功windows+r打开dos命令出现这样的内容就是配置成功4.配置本地仓库右键记事本打开,或者编辑工具打开我这里用的是Notepad++打开的复制刚才创建的本地仓库路径切记把复制的路径、\改成/配置阿里镜像<mirror><id>alimaven</id> <name>aliyummave

    2022年9月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号