0

EditText 나 ​​다른 입력/선택기와 관련된 현재보기/조각이 아닌 일부 문제가 있습니다. 내 새 프래그먼트는 EditText를 호출합니다. 몹시 떠들어 대다.Android - getCurrentFocus(). clearFocus()가 발생하면 어떻게 되나요?

이 문제를 해결할 방법을 알고 있습니다. 나는 requestFocus()과 함께 몇 가지 인형보기를 사용할 수 있습니다. 가끔은 (그리고 그 문제가) activity.getCurrentFocus().clearFocus(); 하지만 마지막 하나는 실패한 1/2처럼 보입니다.

그래서 여기 내 질문이 있습니다. 어떻게 작동 getCurrentFocus(), 그는 현재 활동보기 또는 하위 만 조각으로 확인 했습니까? 왜 이것이 매번 작동하지 않는 걸까요? 사람이있는 리드를 가지고

경우, 감사합니다 : D

+0

포커스를 얻은 뷰가 매번 다른 점이 있습니까? –

+0

문제는 포커스를 얻은 뷰가 이전 조각의 뷰라는 점입니다. – Nek

답변

0

포커스를 얻은 뷰가이 같은 시도 할 때마다 다른 경우 : 사용하는 경우

View current = getCurrentFocus(); 
if (current != null) { 
current.clearFocus(); 
} 

가 당신이 발견 이 clearFocus()이 작동하지 않습니다, 당신은 할 수 있습니다

<LinearLayout 
android:id="@+id/my_layout" 
android:focusable="true" 
android:focusableInTouchMode="true" ...> 

을 최상위 레이아웃보기 (선형 레이아웃)로 변경하십시오. 모든 버튼에서 포커스를 제거하기 위해/EditTexts는 등, 당신은 단지 문서

뷰 프레임 워크에 초점을 지 웁니다에서

LinearLayout myLayout = (LinearLayout) activity.findViewById(R.id.my_layout); 
myLayout.requestFocus(); 

가에 포커스를하려고 할 수 있습니다 먼저 focusable 위에서 볼. 이 View가 포커스를 취득 할 수있는 선두로부터 최초로 존재하는 경우, 포커스를 클리어하는 것과 관련된 모든 콜백이 불려가므로, 프레임 워크는이 뷰에 포커스를줍니다. 이 도움이


희망.

+0

미안하지만 그건 내가 묻는 것이 아닙니다 (CF 질문 : "이 문제를 해결할 방법을 안다"). 나는 이것을 고치는 길을 원치 않는다. 나는 더미 뷰나 getCurrentFocus를 사용하는 것을 안다. 첫 번째 이유가 매번 작동하지 않는 이유는 무엇입니까? – Nek

+0

내 편집 확인'문서에서' –

+0

고마워! 나는 더 조사 할 것이다 :) – Nek