在過去的幾個小時裏這讓我瘋狂。
我有一個FrameLayout,它有一個單一的按鈕。 當你點擊按鈕時,我想繪製一個新單詞,並得到它的測量值,這樣我就可以在它周圍繪製一個矩形。TextView測量,頂部,左側沒有被更新
這是一個運行當你點擊「下一步」按鈕的代碼:
private OnClickListener m_onClickNext = new OnClickListener()
{
public void onClick(View v)
{
TextView tv = new TextView(context);
tv.setTextColor(0xFF000000);
tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 100);
tv.setText("TEXTSTRING");
m_frameLayout.addView(tv, new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.CENTER));
//tv.measure(0, 0);
int left = tv.getLeft();
int top = tv.getTop();
int right = left + tv.getMeasuredWidth();
int bottom = top + tv.getMeasuredHeight();
}
};
左邊和頂部爲0(零)。
添加tv.measure(0, 0)
至少更新寬度和高度。
我嘗試撥打invalidate
和requestLayout
,tv
和m_frameLayout
,但沒有成功。
我知道佈局還沒有完成繪圖..但爲什麼?
謝謝,我實現了'OnLayoutChangeListener' – Itsik 2012-01-14 08:16:59