2017-04-21 62 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

相關問題