촉구 나는 ClearableEdittext를 구현하고 로그 캣이 나를 홍수 곳은 4.3을 제외하고 완벽하게 작동합니다 :ClearableEditText - requestLayout() 잘못 안드로이드 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가 멈추고 있습니다.
인터넷에 관한 정보를 찾을 수 없습니다. 그리고 requestLayout()
은 Edittext/Textview 클래스 내에서 호출해야합니다. 왜냐하면 결코 호출하지 않기 때문입니다. 누구든지이 문제를 해결하는 방법이나 버그의 원인을 알고 있습니까?
EDIT1 OK, 문제가 사라집니다 그래서 라인 주석 경우 :
setCompoundDrawables(getCompoundDrawables()[0], getCompoundDrawables()[1], x, getCompoundDrawables()[3]);
내가보기의 UI 큐에 실행 가능한로서이 게시 시도를하지만 텍스트는 최대 표시되지 않습니다.
EDIT2 내가 뭔가 재귀가 onLayout
동안 무슨 일이 일어나고 있음을 설명하는 안드로이드 개발자의 this video 봐 왔지만, 다시 한번, 나는 단지 EditText
를 서브 클래스.
Edittext
의 상단에 뭔가를 그릴 때 이
가 EDIT3 나는 또한 화합물 드로어 블을 폐기하고 EditText
위에 다른 ImageView
를 사용하여 시도하지만 레이아웃 함께 할 수있는 뭔가가 통과 ... 재귀 호출이
여전히 발생하고 UI를 차단합니다. ... 다음 시도하는 것을 4.3 SUX
EDIT4을 몰라 난 구성 요소의 배경 가로 방향 및 사용자 정의 9 패치 드로어 블과 선형 레이아웃을 사용하여 끝났다. 레이아웃에서 나는 사용자 정의 9patch Bg로 일반 edittext를 가지고 있고 다른 사용자 정의 9patch Bg로 ImageButton을 가지고 있습니다. 이 같은
뭔가 :
빨간색 선은하여 ImageButton에서 EDITTEXT를 구분합니다. 이제 4.3에서 작동합니다
이 작동하면 텍스트를 입력 한 후에 버튼 만 항상 표시됩니다. 글쎄, 버전 4.3의 onFocusChange에 if 절을 넣을 수 있다고 생각합니다. 어쩌면 시간이 지나면 안드로이드 측에서 수정 될 것입니다. – androidu