android 动态设置View的高度和宽度,ViewTreeObserver使用

private int mMonitorHeight = 0;
private int mMonitorWidth = 0;
private boolean  bisSetScreen = false;

 动态设置满屏宽度

 

ViewTreeObserver vto2 = monitor.getViewTreeObserver();
vto2.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener(){@Overridepublic void onGlobalLayout(){if(bisSetScreen == false){mMonitorHeight = monitor.getMeasuredHeight();mMonitorWidth = monitor.getWidth();if(mMonitorHeight != 0 && mMonitorWidth != 0){monitor.setScreenSize(mMonitorWidth, mMonitorHeight);bisSetScreen = true;}}}
});

LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) TextView.getLayoutParams(); //取控件textView当前的布局参数linearParams.width = 40;// 控件的宽强制设成30
linearParams.height =40;// 控件的高强制设成20TextView.setLayoutParams(linearParams);

/*** 重设 view 的宽高*/
public static void setViewLayoutParams(View view, int nWidth, int nHeight) {ViewGroup.LayoutParams lp = view.getLayoutParams();if (lp.height != nHeight || lp.width != nWidth) {lp.width = nWidth;lp.height = nHeight;view.setLayoutParams(lp);}
}

自动属性长度

ViewGroup.LayoutParams.WRAP_CONTENT
ViewGroup.LayoutParams.MATCH_PARENT

 控件的边距

RelativeLayout.LayoutParams linearParams2 =(RelativeLayout.LayoutParams) top2.getLayoutParams(); //取控件textView当前的布局参数
linearParams2.topMargin =450;// 控件的边距
top2.setLayoutParams(linearParams2);

动态设置列表高度

LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) activityOneRecyclerView.getLayoutParams(); //取控件textView当前的布局参数
linearParams.height = UIUtils.dip2px(98)*6;//98是item高度。6是item数量

工具方法:

/*** 将dip或dp值转换为px值,保证尺寸大小不变*/
public static int dip2px(Context context, float dipValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (dipValue * scale + 0.5f);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle RDA(Remote Diagnostic Agent) 工具说明

Oracle RDA(Remote Diagnostic Agent) 工具说明 分类: Oracle 性能调优 Oracle 高级知识 一.RDA 说明 RDA(RemoteDiagnostic Agent)是oracle用来收集、分析数据库的工具,运行该工具不会改变系统的任何参数,RDA收集的相关数据非常全面&…

替换元素节点replaceChild()

replaceChild 实现子节点(对象)的替换。返回被替换对象的引用。 语法: node.replaceChild (newnode,oldnew ) 参数: newnode : 必需,用于替换 oldnew 的对象。 oldnew : 必需,被 newnode 替换的对象。 注意: 1. 当 oldnode 被替…

mpvue 从零开始 女友的发带 2 window中设置

女友头上发带的颜色和文字是可以设置的,通过配置app.json中的window参数。 "window": {"backgroundTextStyle": "light","navigationBarBackgroundColor": "#58A94E","navigationBarTitleText": "…

mpvue 从零开始 女友使用 3 rpx 适应大小

对于各种机型屏幕尺寸的大小,小程序给出了解决方案,使用rpx。 微信小程序规定屏幕的宽度为750rpx。 无论是在iPhone6上面还是其他机型上面都是750rpx的屏幕宽度,拿iPhone6来讲,屏幕宽度为375px,把它分为750rpx后&#…

mysql中独立表空间与共享表空间之前如何切换

环境 mysql版本:5.7.19 官方文档:(https://dev.mysql.com/doc/refman/5.7/en/innodb-multiple-tablespaces.html) 查看目前属于哪种表空间 mysql> show variables like %per_%; 共享表空间会显示为off: 独立表空间会显示为on: …

常见Eclipse SVN插件报错解决方法

名师指导: 常见Eclipse SVN插件报错解决方法 在学习SVN的过程中,你经常会遇到SVN插件问题,本文介绍一下在安装SVN插件时常见Eclipse SVN插件报错信息问题,希望本文介绍对你的学习有所帮助。 AD: 本节和大家一起看一下SVN插件在安装…

android 标题栏颜色渐变和阴影,ScrollView上下滑动监听,及判断scrollView是否滚动到底部

1、创建 ScrollListener 接口监听滑动距离 public interface ScrollListener {void onScrollChanged(ScrollListenerView scrollView, int x, int y, int oldX, int oldY); }view阴影属性 android:elevation"4dp"2、重写 ScrollView 自定义 ScrollListenerView …

mpvue 从零开始 女友的来电 4 flyio

女友给我打电话,我的号码是fly.js,可以进行数据请求。 1、安装需要的库flyio、qs yarn add flyio qs2、src目录下新建api/index.js,填写下面代码 import Fly from flyio/dist/npm/wx; import qs from qs;const fly new Fly(); const host…

Linux下MySQL 安装配置

MySQL 是最流行的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。 MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。 MySQL由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型…

向oracle表空间添加一个数据文件命令

向表空间添加一个数据文件SQL语句: ALTER TABLESPACE sde ADD DATAFILED:\app\Administrator\oradata\orcl\sde1 SIZE 400M; 记得加上自动扩展的命令:autoextend on

android 监听webView滑动距离和标题栏颜色渐变

重写webView之 X5WebView import android.annotation.SuppressLint; import android.content.Context; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.util.Log; import android.view.ActionMode; import android.view.Menu; …

mpvue 从零开始 女友拉黑了我 5 不在以下request 合法域名列表中,请参考文档

上一篇,才调通了接口,试了几次,都成功,突然,微信报错了。 VM6239:1 https://www.easy-mock.com 不在以下 request 合法域名列表中,请参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api…

Javascript与C#中使用正则表达式

JavaScript RegExp 对象 新建一个RegExp对象 new RegExp(pattern,[attributes]) 注: \d需要使用[0-9]来代替 参数 参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。 参数 attributes 是一个可选的字符串,包含…

Windows 不能在 本地计算机 启动 SQL Server 服务 错误代码126

Windows 不能在 本地计算机 启动 SQL Server 服务 错误代码126 在使用SQL2005(或2008)是可能会遇到错误提示: “Windows 不能在 本地计算机 启动 SQL Server 。 有关更多信息,查阅系统事件日志。如果这是非 Microsoft 服务&…

android Calendar使用 年月日时分秒

int myhour0;int mymin0;int mymonth0;int myday0;int twoday0;try {final Calendar c Calendar.getInstance();c.setTimeZone(TimeZone.getTimeZone("GMT8:00"));//获取当前时间的年月日String mDay String.valueOf(c.get(Calendar.DAY_OF_MONTH));// 获取当前月份…

微信小程序报错 .wxss 无法找到

使用mpvue 报错,无法找到wxss文件,解决方法,删除dist目录里面的内容。重重新编译,解决问题。