以编程方式更改LayoutParams在Android中无效.为什么?

以编程方式更改LayoutParams在Android中无效.为什么?,第1张

概述我有一个自定义视图,派生自Button,我想在运行时相对于另一个视图定位.因为当我的视图被夸大时我不知道其他视图的位置(因为布局还没有开始),我利用onSizeChanged处理程序来设置我的视图相对于另一个视图的位置. 在onSizeChanged中: LayoutParams lp = new LayoutParams(this.getMeasuredWidth(), this.getMeas 我有一个自定义视图,派生自button,我想在运行时相对于另一个视图定位.因为当我的视图被夸大时我不知道其他视图的位置(因为布局还没有开始),我利用onSizeChanged处理程序来设置我的视图相对于另一个视图的位置.

在onSizeChanged中:

LayoutParams lp = new LayoutParams(this.getMeasureDWIDth(),this.getMeasuredHeight());lp.leftmargin = x;lp.topmargin = y;this.setLayoutParams(lp);forceLayout();

但是,这没有任何效果.怎么会?

解决方法 有些事情需要考虑:

>您确定此代码正在执行吗?>您是否检查过hIErarchyvIEwer中的UI以查看是否设置了边距,但它们根本没有您期望的视觉效果?>你确定通过relativeLayout处理这个问题不是更好吗?>您是否尝试过修改现有的LayoutParams而不是替换它?

总结

以上是内存溢出为你收集整理的以编程方式更改LayoutParams在Android中无效.为什么?全部内容,希望文章能够帮你解决以编程方式更改LayoutParams在Android中无效.为什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存