【发布时间】:2017-09-18 19:14:19
【问题描述】:
上面有很多编辑文本 ,
我使用 RelativeLayout 动态创建(在 XML 中定义)。第一个编辑文本也是在 XML 中定义的,其他的都是基于这个第一个编辑文本创建的。问题是,正如您所见,最后一个编辑文本正在改变其高度,并且与其他文本不同,但我该如何检查呢?如何获取此编辑文本的高度并将其添加到屏幕的下一行?
【问题讨论】:
上面有很多编辑文本 ,
我使用 RelativeLayout 动态创建(在 XML 中定义)。第一个编辑文本也是在 XML 中定义的,其他的都是基于这个第一个编辑文本创建的。问题是,正如您所见,最后一个编辑文本正在改变其高度,并且与其他文本不同,但我该如何检查呢?如何获取此编辑文本的高度并将其添加到屏幕的下一行?
【问题讨论】:
你可以试试这个动态获取大小:
getMeasuredHeight() :请在谷歌上搜索更多信息。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EditText ed = (EditText) findViewById(R.id.edit1);
ed.setTextSize(20);
ed.setText("here stackoverflow");
ed.measure(0, 0);
int height = edit.getMeasuredHeight();
因为这个原因,我经常使用它,仔细阅读,它会帮助你:
视图的大小用宽度和高度表示。一个视图实际上拥有两对宽度和高度值。
第一对称为测量宽度和测量高度。这些尺寸定义了视图在其父视图中的大小(有关详细信息,请参阅布局。)可以通过调用 getMeasuredWidth() 和 getMeasuredHeight() 获得测量的尺寸。
第二对简单地称为宽度和高度,或者有时称为绘图宽度和绘图高度。这些尺寸定义了屏幕上、绘图时和布局后视图的实际大小。这些值可能(但不一定)与测量的宽度和高度不同。宽度和高度可以通过调用getWidth()和getHeight()获得。
【讨论】:
onCreate 期间在View 上调用getMeasuredHeight 可能返回零
你可以试试这样的..
EditText editText = (EditText) findViewById(R.id.your_view_id);
int height = editText.getHeight(); // This will give height
EditText editTextLast = (EditText) findViewById(R.id.your_view_id);
editTextLast.setHeight(height); // this will set the height
【讨论】: