2010-12-05 14 views
3

私はカスタムビューを動的に挿入しており、onDrawは呼び出されていません。私は最初に動的な挿入なしでカスタムビューを作ったが、それは私の作業コードベースに移動するとき、ビューコンストラクタが呼び出され、onMeasureも呼び出されても、私はonDrawがいつも呼び出されることができません。私はinvalidate()postInvalidate()を場所の周りに呼び出そうとしましたが、彼らは描画を強制的に表示していないようです。ビュー階層は、バージョンと私が失われているの両方で同じように見えます。ダイナミックに挿入されたカスタムビューでAndroid-onDrawが呼び出されない

誰でも手助けできますか?

EDIT:エミュレータではonDrawが呼び出されましたが、ハンドセットでは呼び出されませんでした。また、携帯電話のonSizeChangedには正しい値が入力されていますが、エミュレータでは値はすべて0です。

EDIT:私はそれについて試してきましたが、まだどこでも得ることができないので、賞金を払っていますそれ。より多くのコード/ xml/infoが必要な場合は、私にお知らせください。

答えて

1

Viewが機能しなかった理由を私はのように少し混乱しているが、私はTextViewViewを変更し、今で動作しているようです。

1

これは、私の最初のカスタムビューで、私が最近持っていた問題とよく似ています。ビュー階層をロードするときに、カスタムビューが表示されるかどうか確認しましたか?とにかく、彼らはワイヤーフレームのプレビューに配置されているかどうか?

後者の場合は、呼び出されないrequestLayout()です(すべてのビューで呼び出されたビュー階層呼び出しによって、ビューが表示されます)。私も同様のバグが既に報告されていることを発見しましたhere

+0

答えていただきありがとうございますが、ビューが階層ビューアに表示されず、requestLayoutがlogステートメントでオーバーライドされた場合は、必ず呼び出されています。実際には、エミュレータonDrawのテストは現在呼び出されていますが、キャンバスはビューだけでなく、全画面のディメンションを持ちます。 – Martyn

関連する問題