사전설명)

1. 전체구조: TabActivity내에 4개의 Activity가 등록되어 있음.

2. 특정 Activity 내에 HorizontalScrollView가 있고 하위에 EditText가 존재함.

3. 특정 Activity를 독립되게 실행하게 되면 해당 EditText에 Focus가 들어가 있음.(requestFocus() 사용)

 

상태내용)

1. 일반적인 Activity가 있는 탭을 선택하면  EditText의 Focus가 true가 되면서 편집 상태가 됨.

2. 특정 Activity가 있는 탭을 선택하면 EditText에 어떤 Focus 변경 이벤트도 처음에 발생하지 않음.

3. 특정 Activity가 있는 탭을 한번 더 선택하면 그때부터 EditText의 Focus 변경 이벤트가 발생함.

4. 물론 특정 Activity에 HorizontalScrollView를 빼고하면 정상적으로 Focus가 갑니다.

 

참고화면)  * 부분의 EditText에 Focus가 가 있어야 함.

-------------------------------------------------------------------

Tab1    |     특정Activity   |     Tab3   |       Tab4

-------------------------------------------------------------------

title  descent   ---*----       -------    --------  ------

title  descent  ---------       -------    --------   ------

.

.

.

title  descent  ------        -------    --------   ------

 

 

 

 

문의내용)

1. 탭이 선택될 때 TabHost -> TabSpec->특정Activity->HorizontalScrollView->EditText로 Focus 변경 사항이

    전달 될 텐데 왜 처음 탭이 선택될때는 이런 Event가 전달이 안되는 것일까요?

2. Event 전달 자체가 안된다면 계속 안되어야 할 텐데 왜 탭을 두번 누르면 그때부터는 전달이 될까요?

3. HorizontalScrollView와 TabActivity 사이에 Focus에 대한 다른 어떤 원리가 존재하는 것인가요? 

 

일반적인 방법들(requestFocus, setDescendantFocusability, setFocusable.....등등은 모두 테스트 해 본 상황입니다.)

답변 좀 주십시요...환장하겠습니다...ㅜㅜ