2013-02-07 2 views
14

Autocompletetextview에서 제안 목록을 소프트 키보드의 테두리까지 드롭 다운했습니다.autocompletetextview에서 키보드 위로 스크롤 드롭 다운 메뉴

다음 제안 목록을 스크롤하면 - (진저 브레드 폰에서) 드롭 다운 메뉴는 키보드를 덮는 높이를 자동으로 증가 시키므로 더 많은 항목을 표시하므로 좋을 것입니다. - (ICS 에뮬레이터에서) 드롭 다운 메뉴는 키보드에서 높이를 높이 지 않습니다.

일부 시스템 속성과 관련이 있습니까? ICS에서도 첫 번째 동작을 강제 수행 할 수 있습니까?

+0

이 특정 문제에 대한 답변을 찾으셨습니까? 나는 현재 같은 문제에 직면하고있다. 감사. – Andres

+0

이상한 행동으로 같은 문제가 발생했습니다. – Penzzz

답변

26

레이아웃 파일의 AutoCompleteTextView 태그에 android : dropDownHeight = "100dp"를 추가하기 만하면됩니다.

+2

만약 내가 할 수만 있다면 너에게 백만 달러를 줄거야. 너는 내 날을 만들었다! – keybee

+2

다른 장치의 종횡비가 다르며 100dp가 마법의 숫자가 아니므로 다른 장치와 OS에 맞게 조정해야합니다. 그러나 이것이 지금까지 발견 한 유일한 해결 방법이므로이 대답을 너무 많이 외쳐야합니다. 감사! – shalafi

+0

검색의 날 ... 고뇌의 날 .. 그런 간단한 수정. 감사합니다 – Brandon

2

키보드 뒤에 "드롭 다운"표시가 나타나지 않도록 약간의 트릭을 설명하겠습니다. 트릭은 dropDownAnchor 속성을 사용하는 것입니다. 화면 상단에 뷰가있는 앵커가 솔루션에 설정되므로 메뉴가 해당 위치에서 벗어나 키보드에서 처리되지 않습니다. 예를 들어 :

android:dropDownAnchor="@+id/topview"

나는 그 못생긴 솔루션 만이 컨트롤이 너무 제한 알고있다.

0

두 가지 작업을 수행해야합니다. 먼저 매니페스트에서 해당 활동의 소프트 입력 모드를 조정하십시오.

android:windowSoftInputMode="stateHidden|adjustResize" 

이렇게하면 키보드가 표시 될 때 다시보기가 배치됩니다. 그런 다음 최상위 수준보기에서 oncreate에 전역 레이아웃 수신기를 설정하여 레이아웃이 변경 될 때 드롭 다운 높이 계산을 수행합니다. 원하는 경우 드롭 다운 높이를 키보드 아래 모든 항목의 높이에서 약간의 패딩을 뺀 값으로 조정하십시오.

v.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 

     @Override 
     public void onGlobalLayout() { 
       autoCompleteView.setDropDownHeight(view2.getHeight()); 
} 

여기서 view2는 자동 완성보기 아래의 모든 것을 포함하는보기/레이아웃입니다.

1

android:dropDownAnchor="@id/을 사용하여보기에 드롭 다운을 고정시킬 수도 있습니다.

0

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);을 조각이나 활동에 추가하십시오.