android view setleft,android – 在新textview上使用setLeft / setRight方法

 2023-09-23 阅读 15 评论 0

摘要:我正在以编程方式使用TextViews,我需要动态添加新视图并在RelativeLayout父级中设置它们的左/顶位置.我正在做的是这样的:RelativeLayout global=(RelativeLayout)findViewById(R.id.global);TextView view=(TextView)findViewById(R.id.root);RelativeLayout.

我正在以编程方式使用TextViews,我需要动态添加新视图并在RelativeLayout父级中设置它们的左/顶位置.

我正在做的是这样的:

RelativeLayout global=(RelativeLayout)findViewById(R.id.global);

TextView view=(TextView)findViewById(R.id.root);

RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

final TextView childView=new TextView(view.getContext());

lp.addRule(RelativeLayout.ABOVE, view.getId());

childView.setLayoutParams(lp);

childView.setId(childView.getId()+1);

childView.setText("TRY STRING");

childView.setTextSize(view.getTextSize());

childView.setWidth(view.getWidth());

childView.setLeft(view.getLeft()+interval);

global.addView(childView);

基本上,我在某个位置(称为视图)有一个textview,我正在尝试在现有的位置和相同的左侧位置上创建一个新的textview.

虽然getLeft()方法正确返回视图的左侧位置,但是当将我将其添加到RelativeLayout时,childView恰好将左侧字段设置为零,并显示在屏幕的左端.

看起来它完全忽略了setLeft方法!

有谁能解释为什么?

非常感谢你提前!

解决方法:

public final void setLeft(int left)

在API级别11中添加

设置此视图相对于其父级的左侧位置.此方法旨在由布局系统调用,通常不应以其他方式调用,因为该属性可能随时由布局更改.

参数

left此视图的底部,以像素为单位.

每次绘制时,布局最有可能设置左值,并覆盖您在视图上设置的值.

即使以编程方式进行操作,android布局也非常简单.

尝试使用

lp.setMargins(int left, int top, int right, int bottom);

..或绘制布局时不会撤消的其他方法

标签:android,textview,relativelayout

来源: https://codeday.me/bug/20190609/1207117.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/87103.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息