これは数時間前に私を狂ってしまいました。
私はFrameLayoutを持っています、それに1つのボタンがあります。 ボタンをクリックすると、新しい単語を描画し、その周囲に矩形を描くことができるように測定値を取得します。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
に呼び出しましたが、成功しませんでした。
私はレイアウトが描画されていないことを理解しています..しかし、WHY ????
おかげで、私はOnLayoutChangeListener' '実装 – Itsik