layoutparams方法_LAYOUT

layoutparams方法_LAYOUT沙翁向昨天要经验;向今天要结果;向明天要动力Android开发:LayoutParams的用法LayoutParams继承于Android.View.ViewGroup.LayoutParams.    LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Android开发:LayoutParams的用法

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

在JAVA中动态构建的布局,常常这样写:

setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

上面这一句话其实是子对父的,也就是说,父布局下的子控件要设置这句话。

因为布局很多,虽然都继承至ViewGroup但是各个布局还是有很大的不同。

很显然上面这句应该这样写才算准确:

setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,TableRow.LayoutParams.FILL_PARENT));

这表示这个子控件的父布局是一个TableRow , 这样的LayoutParams 太多,所以应明确指明。

 

下面分别说下两个常用到布局:

1. FrameLayout下动态设置子控件居中,动态用JAVA代码要这样实现:

FrameLayout.LayoutParams lytp = new FrameLayout.LayoutParams(80,LayoutParams.WRAP_CONTENT);
lytp .gravity = Gravity.CENTER;
btn.setLayoutParams(lytp);

2. RelativeLayout下动态设置子控件居中:

RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE); 
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE); 
btn1.setLayoutParams(lp);


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

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

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

相关推荐

  • 菜鸟的Hadoop快速入门「建议收藏」

    菜鸟的Hadoop快速入门「建议收藏」一、相关概念1、大数据大数据是一门概念,也是一门技术,是以Hadoop为代表的大数据平台框架上进行各种数据分析的技术。大数据包括了以Hadoop和Spark为代表的基础大数据框架,还包括实时数据处理,离线数据处理,数据分析,数据挖掘和用机器算法进行预测分析等技术。2、HadoopHadoop是一个开源的大数据框架,是一个分布式计算的解决方案。Hadoop的两个核心解决了数据存储问题(H…

    2022年5月29日
  • 画平行线的三种方法_平行线的画法五种视频

    画平行线的三种方法_平行线的画法五种视频《平行线的画法》教学反思教师在教学中要善于利用小组合作学习,充分调动了同学们的积极性。接下来由小编整理了《平行线的画法》教学反思,欢迎查看,希望帮助到大家。《平行线的画法》教学反思【1】每到学习平行线的画法,总有学生学起来感到困难,用尺子移来移去,实在太麻烦,而且学生在以后也不容易记住。正是基于这样的认识画平行线的教学只能由教师传授给学生,他们也只能是机械的模仿,也就是简单的完成操作工的活动,但是…

    2022年9月20日
  • CorelDRAW2022下载附带序列号安装教程

    CorelDRAW2022下载附带序列号安装教程CorelDRAW作为图形设计软件的代表,以其杰出和革新的特性赢得了长期的声誉和用户的赞赏,是一套屡获殊荣的图像编辑软件。CorelDRAW2020包含程序:CorelDRAW2020主程序矢量插图和页面布局工具CorelPHOTO-PAINT2020图像编辑工具:编辑照片,享受与CorelDRAW的集成工作流。CoreFontManager2020字体开发与管理工具:无需安装即可直接使用自己喜欢的字体。PowerTRACE人工智能驱动的位图转矢量图工具CorelDRAW.a

    2022年5月5日
  • SA-SSD训练过程出现nan

    SA-SSD训练过程出现nan

    2020年11月8日
  • 什么是Rational Rose[通俗易懂]

    什么是Rational Rose[通俗易懂]一、RationalRose是什么?RationalRose是Rational公司出品的基于UML的可视化建模工具。当前市场上基于UML可视化建模的工具很多,例如有Microsoft的Visio

    2022年7月3日
  • 将三维数组中的同名的键拆分成三维数组的每个数组中包括原来不同的二维数组的键…

    将三维数组中的同名的键拆分成三维数组的每个数组中包括原来不同的二维数组的键…

    2021年11月4日

发表回复

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

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