如何动态获取编辑文本的高度?

时间:2017-04-21 17:16:45

标签: java android

有很多编辑文本 this image

我使用RelativeLayout动态创建(whis以XML格式定义)。第一个编辑文本也以XML格式定义,其他编辑文本基于此第一个编辑文本创建。问题在于,正如您所看到的,最后一个编辑文本正在改变它的高度,它与其他编辑文本不同,但我该如何检查呢?如何获得此编辑文本的高度并将其添加到屏幕的下一行?

2 个答案:

答案 0 :(得分:3)

您可以尝试动态调整大小:

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()获得宽度和高度。

答案 1 :(得分:1)

你可以尝试这样的事情......

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