0

화면의 하단에 탭이있는 TabActivity가 있습니다. 내 첫 번째 탭은 화면 상단의 고정 헤더 레이아웃과 여러 EditText 컨트롤이 포함 된 ScrollView 아래에 구성된 활동을 호스팅합니다. ScrollView는 헤더 막대와 하단 탭 사이에서 내용을 잘 스크롤합니다. EditText를 두드리고 소프트 키보드가 나타나면 문제가 발생합니다. 키보드가 나타나면보기의 동작을 제어하는 ​​것을 이해합니다. 매니페스트 XML 파일에 windowSoftInputMode 속성을 사용해야합니다. 그러나 다음 설정을 시도했습니다 :Android - TabActivity 및 windowSoftInputMode에서 호스팅되는 ScrollView 활동

adjustResize - ScrollView에 대한 올바른 기능을 제공하며 머리글 레이아웃은 화면 상단에 고정되어 있습니다. 그러나 탭 막대 컨트롤은 키보드 위에 밀어 넣습니다.

adjustPan - 탭 막대 컨트롤은 키보드 아래의 화면 아래쪽에 있습니다 (원하는 부분). 다른보기는 키보드 레이아웃에 의해 밀어 올려 화면에서 벗어날 수 있습니다.

두 설정의 특성이 필요한 것 같지만 함께 사용할 수 없습니다. 나는 설정이 adjustNothing이라고 들었다. 그러나이 설정을 인식하지 못하기 때문에이 프로젝트를 만들지 못한다. 나는 내 호스트 활동이 adjustPan이지만 내 콘텐츠 활동은 adjustResize 일 필요가 있다고 생각하지만 우선 순위가 높은 탭 호스트 활동이므로이 둘을 결합 할 수없는 것처럼 보입니다.

도움을 주시면 감사하겠습니다.

+0

내가 테스트 할 수 없기 때문에 도움이되는지 확실하지 않지만이 답변을 확인하십시오. 프로그래밍 방식으로 콘텐츠의 속성을 프로그래밍 방식으로 설정할 수 있습니다. http://stackoverflow.com/a/6138509/562840 – Mikel

+0

제안을 주셔서 감사합니다. 유망하지만 작동하지 않았다 :-(. –

답변

0

직접적인 해결책이없는 상황에서 나는 일종의 해킹에 의지했습니다. 내 TabHost 활동을 adjustResize으로 설정 한 다음 소프트 키보드가 나타나거나 사라지면 탭 막대 컨트롤 (TabWidget) 숨기기/숨기기 코드를 작성했습니다. 나는 여기에 기술을 사용하여 꽤 좋은 결과를 얻었습니다 : Adjust layout when soft keyboard is on 키보드가 나타나거나 사라지는 것을 감지했습니다.