2017-04-21 66 views
3

上有 this image许多编辑文本,如何动态获取编辑文本的高度?

其中创建动态使用的RelativeLayout(WHIS以XML定义)。第一个编辑文本也是用XML定义的,其他编辑文本是基于这个第一个编辑文本创建的。问题是,正如你可以看到最后的编辑文本正在改变它的高度,它不同于其他的,但我怎么检查它?如何获得此编辑文本的高度并将其添加到屏幕上的下一行?

+0

看看http://stackoverflow.com/questions/4393612/when-can-i-first-measure-a-view – nandsito

回答

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 
+0

我试过使用getHeight函数,但它返回0.在XML中,我设置了wrap_content作为第一个编辑文本 –

4

你可以试试这个动态获取大小:

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

在'onCreate'期间在'View'上调用'getMeasuredHeight'的宽度和高度可能返回零 – nandsito

相关问题