Android -Ondraw動的挿入されたカスタムビューで呼び出されていません
-
08-10-2019 - |
質問
動的に挿入されているカスタムビューがあり、 onDraw
呼ばれていません。私は最初、動的挿入なしでカスタムビューを作成しましたが、それは正常に機能しましたが、作業コードベースに移動すると、取得できません onDraw
ビューコンストラクターが呼ばれ、 onMeasure
呼び出されます。私は置いてみました invalidate()
と postInvalidate()
その場所の周りに電話をかけますが、彼らは眺めを描くように強制していないようです。ビュー階層は両方のバージョンで同じように見え、私は失われています。
誰かが助けることができますか?
編集:もう少しテストが示しています onDraw
エミュレータで呼び出されていますが、携帯電話ではありません。また onSizeChanged
携帯電話には正しい値がありますが、エミュレータでは値はすべて0です。
編集:私はそれについて遊んでいますが、それでもどこにも行くことができないので、賞金をかけました。さらにコード / XML /情報が必要な場合は、お知らせください。
解決 2
私は変更しました View
に TextView
そして、私は少し混乱していますが、今は機能しているようです どうして View
うまくいきませんでした。
他のヒント
これは、最初のカスタムビューで、私が最近抱えていた問題のように聞こえます。ビュー階層をロードすると、カスタムビューが表示されるかどうかに気付きましたか?とにかく、彼らはワイヤーフレームのプレビューにレイアウトされているかどうか?
後者が当てはまる場合、そうです requestLayout()
それは呼び出されません(すべてのビューで階層をロードする階層はそれを呼び出します - それがビューが表示される理由です)。また、同様のバグがすでに報告されていることもわかりました ここ.