新手求教

立青_ 中级 2020-07-06 03:25:51
setLayoutParams一定要用新new的LayoutParams,用getLayoutParams()获取到的LayoutParams无效,但是我只是想更改一部分属性啊,重新new也太麻烦了,这是什么原因?怎们解决?
...全文
12261 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
le540850072 2020-07-10
  • 打赏
  • 举报
回复
tv.setLayoutParams(layoutParams);
3楼说这样做,应该3楼这样妥当些。set方法中调用了requestLayout
bdmh 2020-07-09
  • 打赏
  • 举报
回复
get后修改属性,然后再set回去
le540850072 2020-07-09
  • 打赏
  • 举报
回复
引用 1 楼 蓝色的天空ywj 的回复:
因为这个view还没有绘制到屏幕上,它的布局参数还未设置,故为空
我想楼主的情况可能不是在初始化的时候调用吧。如果楼主是,在绘制结束了之后,尝试调用getLayoutParams方法,然后修改某个属性。在修改了属性之后,调用requestLayout方法可以使得刚刚的修改内容生效。如下代码所示:

LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) tv.getLayoutParams();
layoutParams.leftMargin = 300;
tv.requestLayout();
闫文敬 2020-07-08
  • 打赏
  • 举报
回复
因为这个view还没有绘制到屏幕上,它的布局参数还未设置,故为空

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧