ListView에 EditTexts가 있습니다. 시작시 초점이 맞지 않지만 사용자는 ListView 항목 (해당 ListView)을 길게 클릭하면 "편집 모드"를 시작할 수 있습니다. 첫 번째 이상한 일은 매우 긴 클릭이 발생했을 때입니다. EditText는 포커스를 얻지 만 키보드는 나타나지 않습니다. EditText는 최종적으로 나타나기 위해 두드려 야합니다. 그 후에 다른 목록 항목을 길게 클릭하면 키보드가 나타납니다. 내가 관측 한 내부 동작의 유일한 차이점은 첫 번째 경우에는 onClick 이벤트가 EditText에 발생하지 않지만 두 번째 경우에는 발생한다는 것입니다.EditText가있는 ListView의 이상한 소프트 키보드 동작
하지만 가장 실망스러운 것은 언젠가 몇 가지 항목을 편집하고 스크롤하여 여기저기서 몇 편 더 편집하면 갑자기 키보드가 보이지 않고 포커스가있는 EditText로 끝나고 다시 키보드를 가져올 수 없습니다 해당 EditText에서 두드리기가 도움이되지 않습니다. 내 apadter에서 정말 조심해야하고 EditText 상태를 저장하고 getView 메소드의 ListView 어댑터에서 다시 작성합니다.
이 내용을 디버깅하는 방법에 대한 제안 사항이 있으십니까? 아마도 키보드가 어떻게 나타나기로 결심하는지, 가능한 경우이 이벤트를 디버깅하는 방법을 설명 할 수 있습니다.
'ListView'에서'EditTexts'를 사용하여 ** 많은 문제가 발생했습니다. 재활용이라는 관점은 초점과 주요 청취자들에게 혼란을 야기했습니다. 나는 완벽하지는 않지만'ScrollView'를 사용하는 것으로 옮겼다. 다행히도 수천 개의 항목을 추가 할 필요가 없으면 scrollview 방식이 효과가 없을 것입니다. – dmon
나는 'ScrollView'에 대해 이미 생각하고 있습니다. 왜냐하면 당신은 완전히 맞습니다. 포커스와 키보드가 혼란 스럽습니다. 나는 수백 가지 항목을 가질 계획이 아니지만 읽고 sqlite db에서 항목을 저장해야합니다. ScrollView를 사용하여 가장 좋은 방법은 무엇입니까? –
필요한 TextViews와 EditTexts를 ScrollView 내의 LinearLayout에 수동으로 추가하기 만하면됩니다. getView()와 모델 백킹 (backing)을 순환하는 어댑터가 있기 때문에 약간은 더 매력적입니다.하지만'addView()'를 호출하기 만하면됩니다. – dmon