我實現ClearableEdittext和它完美的作品除了在4.3當logcat的洪水我:ClearableEditText - requestLayout()不恰當地稱爲在Android 4.3
W/View(16611): requestLayout() improperly called by com.[myPackage].ui.widgets.ClearableEditText{42233dd0 VFED..CL .F....ID 0,0-708,88 #7f050127 app:id/SearchEdittext} during layout: running second layout pass
W/View(16611): requestLayout() improperly called by com.[myPackage].ui.widgets.ClearableEditText{42233dd0 VFED..CL .F....ID 0,0-708,88 #7f050127 app:id/SearchEdittext} during layout: running second layout pass
W/View(16611): requestLayout() improperly called by com.[myPackage].ui.widgets.ClearableEditText{42233dd0 VFED..CL .F...... 0,0-708,88 #7f050127 app:id/SearchEdittext} during second layout pass: posting in next frame
,並在EditText上打字的時候沒有文字顯示出來。此外,在開始淹沒logcat之後,除軟鍵盤之外,UI將變得凍結。
在internetz上找不到任何信息。並且requestLayout()
必須在Edittext/Textview類中調用,因爲我從來不會調用它。 你們中的任何人都知道如何解決這個問題或導致錯誤的原因?
EDIT1好了,問題解決了,如果我註釋掉行:
setCompoundDrawables(getCompoundDrawables()[0], getCompoundDrawables()[1], x, getCompoundDrawables()[3]);
我想張貼這是一個可運行的視圖的UI隊列中,但沒有文字顯示出來。
EDIT2我看到一個Android開發者解釋的東西遞歸期間onLayout
發生的this video,但再一次,我只是繼承EditText
。
EDIT3我也試圖丟棄該化合物可繪製並在EditText
之上使用另一ImageView
但它是與佈局通過借鑑了Edittext
我相信的東西頂在...遞歸調用仍在發生,並阻止用戶界面。不知道接下來要做什麼... 4.3 sux
EDIT4我最終使用了一個水平方向的線性佈局和組件背景的自定義9補丁drawables。在佈局中,我使用自定義的9patch Bg生成普通的edittext,然後使用另一個自定義的9patch Bg生成ImageButton。
事情是這樣的:
紅線劃定從的ImageButton的EDITTEXT。它現在可以在4.3
可能工作,只有按鈕將始終顯示後文本已被輸入。嗯,我想我們可以在onFocusChange for 4.3版本中放置一個if子句。也許隨着時間的推移,這將在Android端得到修復 – androidu