invalidate 執行後,為什麼onDraw 卻不執行

時間 2022-03-12 04:35:02

1樓:匿名使用者

謝謝,你說的有道理,不過這兩個方法在大於等於14時依然不管用,低版本倒是可以

2樓:匿名使用者

view的invalidate未必一定會出發ondraw,如果高版本沒有出發ondraw,可能是做了相關的優化,認為你此次的invalidate並不需要出發ondraw,或者是其他的邏輯。如果你想在搞版本也出發試試以下方法方法1:((view)view.

getparnet()).invalidate();方法2:view.

invalidate();view.forcelayout();view.requestlayout();

3樓:

看了一下,我是在主執行緒中使用view呼叫invalidate的,就是跟sdk版本號有關,這篇帖子貌似沒有涉及到android

sdk的版本

4樓:匿名使用者

因為4.0以後有硬體加速了吧

5樓:匿名使用者

多謝提醒,禁用硬體加速,果然可以了

6樓:出家人詞悲

方法1:

((view)view.getparnet()).invalidate();

方法2:

view.invalidate();view.forcelayout();view.requestlayout();

android invalidate()呼叫ondraw()引起重繪。這段**為何無法執行?

7樓:匿名使用者

問題在於invalidate函式根本沒被呼叫

你在if語句中呼叫此方法,註定其最多隻能被呼叫一次,且是在滿足條件的情況下。

ondraw函式,沒有用invalidate來觸發就被呼叫了,實現了繪圖功能,怎麼回事啊!

8樓:匿名使用者

很多情況ondraw都要呼叫的,剛進入程式時是要呼叫的,改變程式視窗大小時也要呼叫,還有其它情況,你可以設定一個bool變數,在按鈕響應函式中設為true,ondraw中此變數為true是才畫,用個if語句

開機後為什么總有管理員登陸視窗,開機後為什麼總有管理員登陸視窗

一 最簡單的方法 控制面板 使用者帳戶 點選 更改使用者登陸或登出方式 選中 使用歡迎螢幕 確定即可 二 可以通過修改登錄檔來實現xp的自動登入。第1步 執行登錄檔編輯器,依次 hkey local machine software microsoft windows nt currentversi...

微軟模擬火車進入遊戲後為什麼沒有列車執行

因為你沒有安裝路線和任務。還要設定的。那是你沒設定好。開車時,先打反向器 w向前,s向後 再解剎 最後加速 d 電力機車則先確定是否升弓 p 1 進行遊戲。esc 暫停 顯示選單 f2 快速儲存遊戲。shift z 畫面速率 fps 在顯示屏右下角 print screen 在遊戲截圖。2 開車及停...

電影80後為什麼叫這個名字,電影80後為什麼叫這個名字

北極熊 由年輕女導演李芳芳執導,劉冬 黃明等主演的青春愛情片 80 後 於2010年6月25日在中國正式上映。電影以獨特的視角,展示了80後對青春 愛情 親情的理解和獨特展現方式。這是一個關於愛和遺失的故事,以及人們如何面對這樣的事實 沒有任何東西是永恆的。簡介片中男女主角經歷了長達十五年的愛恨糾纏...