android的layout_android可拖拽layout

android的layout_android可拖拽layoutViewGroup.LayoutParams介绍LayoutParams携带了子控件针对父控件的信息,告诉父控件如何放置自己LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:1,一个确定的值;2,FILL_PARENT,即填满(和父容器一样大小);3,WRAP_CONTENT,即包裹住组件就好。每一个ViewGroup(例如LinearLayout,RelativeLa…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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

ViewGroup.LayoutParams介绍

LayoutParams携带了子控件针对父控件的信息,告诉父控件如何放置自己

LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:

1,一个确定的值;

2,FILL_PARENT,即填满(和父容器一样大小);

3,WRAP_CONTENT,即包裹住组件就好。

每一个ViewGroup(例如LinearLayout, RelativeLayout, CoordinatorLayout, etc)需要存储有关其孩子view的属性信息。它的孩子view被放在ViewGroup,这些位置信息存储在一个包装类viewgroup.layoutparams对象中。

为了包含一个特定的布局的具体参数,viewgroup使用layoutparams Viewgroup类的子类来存储。

例如

linearlayout.layoutparams

relativelayout.layoutparams

coordinatorlayout.layoutparams

对于margin有一个ViewGroup.MarginLayoutParams类代替ViewGroup.LayoutParams。

获取ViewGroup.LayoutParams

getLayoutParams()方法可以获取ViewGroup.LayoutParams对象。

举例如下

public class ExampleView extends View {

public ExampleView(Context context) {

super(context);

setupView(context);

}

public ExampleView(Context context, AttributeSet attrs) {

super(context, attrs);

setupView(context);

}

public ExampleView(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

setupView(context);

}

private void setupView(Context context) {

if (getLayoutParams().height == 50){ // DO NOT DO THIS!

// This might produce NullPointerException

doSomething();

}

}

//…

}

ViewGroup.LayoutParams上下转型

注意LayoutParams携带了子控件针对父控件的信息,告诉父控件如何放置自己,所以要使用相应父控件的LayoutParams。

举例说明,一个LinearLayout包含FrameLayout

错误使用

FrameLayout innerLayout = (FrameLayout)findViewById(R.id.inner_layout);

FrameLayout.LayoutParams par = (FrameLayout.LayoutParams) innerLayout.getLayoutParams();

正确的使用

FrameLayout innerLayout = (FrameLayout)findViewById(R.id.inner_layout);

LinearLayout.LayoutParams par = (LinearLayout.LayoutParams) innerLayout.getLayoutParams();

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

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

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


相关推荐

  • mysql配置环境变量(win 10)[通俗易懂]

    1、安装完mysql后就需要配置环境变量(win10)选择“我的电脑”,单击右键,选择“属性->高级->环境变量中的系统变量,对MYSQL_HOME、Path这2个系统变量分别设置如下相应的值(设置原则:如果存在相应的变量,直接对该变量进行编辑,注意只添加不删除;如果该变量不存在,则新建后再编辑。)这里由于没有于是就新建一个环境变量MYSQL_HOM MYSQL_H…

    2022年4月4日
  • 互联网快讯:华为云正式推出区块链服务;猿辅导布局素质教育;轻松筹回应裁员

    互联网快讯:华为云正式推出区块链服务;猿辅导布局素质教育;轻松筹回应裁员国内要闻1、HarmonyOS2升级用户数突破1.2亿,平均每天超100万用户升级2、华为云正式推出区块链服务,单链支持每秒5万条商品信息上链3、荣耀CEO赵明:未来可能有上市计划,星耀公司不是荣耀子品牌4、顺丰回应被浙江省消保委点名:拟于9月29日下架“签收确认”增值服务产品5、轻松筹回应裁员:系因业务调整,所有人将按法律规定结算项目工资6、阿里云推出全球首个云定义存储产品,性能大幅提升300%教育培训1、国家发改委价格司:加强学科类校外培训收费监管工作2、猿辅

    2022年7月17日
  • slam技术研究现状_SLAM uav

    slam技术研究现状_SLAM uav导语:被很多学者认为是实现真正全自主移动机器人关键的SLAM技术,已经开始逐步走入人们的视野,过去几年扫地机器人的盛行让它名声大燥,而AGV、无人机等行业的兴起则让其找到了更加广阔的市场。今天,我们就来聊一聊现下大热的SLAM技术。被很多学者认为是实现真正全自主移动机器人关键的SLAM技术,已经开始逐步走入人们的视野,过去几年扫地机器人的盛行让它名声大燥,而AGV、无人机等行业的…

    2022年10月1日
  • 手机web页面调用手机QQ实现在线聊天的效果

    手机web页面调用手机QQ实现在线聊天的效果

    2021年10月21日
  • JAVA数组的定义及用法

    JAVA数组的定义及用法

    2021年11月24日
  • pycharm中导入pandas_新电脑安装软件特别慢

    pycharm中导入pandas_新电脑安装软件特别慢pandas标红,导入库发现pandas库迟迟不能安装后网络寻找方法:进行换源找到ManageRepositories(如果找不到这个,可以查看我的《Pycharm2019安装第三方库》)点击“+”添加第二行点击OK若成功便会如下图会有两个url(注意pilapse只是个例子,你若没有也正常,重点是有pythontuna…)…

    2022年8月27日

发表回复

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

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