上有 許多編輯文本,如何動態獲取編輯文本的高度?
其中創建動態使用的RelativeLayout(WHIS以XML定義)。第一個編輯文本也是用XML定義的,其他編輯文本是基於這個第一個編輯文本創建的。問題是,正如你可以看到最後的編輯文本正在改變它的高度,它不同於其他的,但我怎麼檢查它?如何獲得此編輯文本的高度並將其添加到屏幕上的下一行?
上有 許多編輯文本,如何動態獲取編輯文本的高度?
其中創建動態使用的RelativeLayout(WHIS以XML定義)。第一個編輯文本也是用XML定義的,其他編輯文本是基於這個第一個編輯文本創建的。問題是,正如你可以看到最後的編輯文本正在改變它的高度,它不同於其他的,但我怎麼檢查它?如何獲得此編輯文本的高度並將其添加到屏幕上的下一行?
你可以嘗試這樣的事情..
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
我試過使用getHeight函數,但它返回0.在XML中,我設置了wrap_content作爲第一個編輯文本 –
你可以試試這個動態獲取大小:
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'的寬度和高度可能返回零 – nandsito
看看http://stackoverflow.com/questions/4393612/when-can-i-first-measure-a-view – nandsito